<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IgH EtherCAT Master: EtherCAT Application Interface</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">IgH EtherCAT Master
   &#160;<span id="projectnumber">1.5.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__ApplicationInterface.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">EtherCAT Application Interface</div>  </div>
</div><!--header-->
<div class="contents">

<p>EtherCAT interface for realtime applications.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__master__state__t.html">ec_master_state_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state.  <a href="structec__master__state__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__master__link__state__t.html">ec_master_link_state_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Redundant link state.  <a href="structec__master__link__state__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__slave__config__state__t.html">ec_slave_config_state_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slave configuration state.  <a href="structec__slave__config__state__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__master__info__t.html">ec_master_info_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master information.  <a href="structec__master__info__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__slave__port__link__t.html">ec_slave_port_link_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">EtherCAT slave port information.  <a href="structec__slave__port__link__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__slave__info__t.html">ec_slave_info_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slave information.  <a href="structec__slave__info__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__domain__state__t.html">ec_domain_state_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Domain state.  <a href="structec__domain__state__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__pdo__entry__info__t.html">ec_pdo_entry_info_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">PDO entry configuration information.  <a href="structec__pdo__entry__info__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__pdo__info__t.html">ec_pdo_info_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">PDO configuration information.  <a href="structec__pdo__info__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__sync__info__t.html">ec_sync_info_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sync manager configuration information.  <a href="structec__sync__info__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structec__pdo__entry__reg__t.html">ec_pdo_entry_reg_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">List record type for PDO entry mass-registration.  <a href="structec__pdo__entry__reg__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gab5c4a56925d06baf2787d2bc7b6390bb"><td class="memItemLeft" align="right" valign="top"><a id="gab5c4a56925d06baf2787d2bc7b6390bb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gab5c4a56925d06baf2787d2bc7b6390bb">ECRT_VER_MAJOR</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gab5c4a56925d06baf2787d2bc7b6390bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">EtherCAT realtime interface major version number. <br /></td></tr>
<tr class="separator:gab5c4a56925d06baf2787d2bc7b6390bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga50d00fb774853fb6c974c3467a7403b1"><td class="memItemLeft" align="right" valign="top"><a id="ga50d00fb774853fb6c974c3467a7403b1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga50d00fb774853fb6c974c3467a7403b1">ECRT_VER_MINOR</a>&#160;&#160;&#160;5</td></tr>
<tr class="memdesc:ga50d00fb774853fb6c974c3467a7403b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">EtherCAT realtime interface minor version number. <br /></td></tr>
<tr class="separator:ga50d00fb774853fb6c974c3467a7403b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e1274b72978322b0df48bf16e760439"><td class="memItemLeft" align="right" valign="top"><a id="ga9e1274b72978322b0df48bf16e760439"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga9e1274b72978322b0df48bf16e760439">ECRT_VERSION</a>(a,  b)&#160;&#160;&#160;(((a) &lt;&lt; 8) + (b))</td></tr>
<tr class="memdesc:ga9e1274b72978322b0df48bf16e760439"><td class="mdescLeft">&#160;</td><td class="mdescRight">EtherCAT realtime interface version word generator. <br /></td></tr>
<tr class="separator:ga9e1274b72978322b0df48bf16e760439"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9da1b3be0320bb6fd2fd7a87874e6324"><td class="memItemLeft" align="right" valign="top"><a id="ga9da1b3be0320bb6fd2fd7a87874e6324"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga9da1b3be0320bb6fd2fd7a87874e6324">ECRT_VERSION_MAGIC</a>&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#ga9e1274b72978322b0df48bf16e760439">ECRT_VERSION</a>(<a class="el" href="group__ApplicationInterface.html#gab5c4a56925d06baf2787d2bc7b6390bb">ECRT_VER_MAJOR</a>, <a class="el" href="group__ApplicationInterface.html#ga50d00fb774853fb6c974c3467a7403b1">ECRT_VER_MINOR</a>)</td></tr>
<tr class="memdesc:ga9da1b3be0320bb6fd2fd7a87874e6324"><td class="mdescLeft">&#160;</td><td class="mdescRight">EtherCAT realtime interface version word. <br /></td></tr>
<tr class="separator:ga9da1b3be0320bb6fd2fd7a87874e6324"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7ba64ff07a3e390c4290f4ffb4b8512"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gac7ba64ff07a3e390c4290f4ffb4b8512">EC_HAVE_REDUNDANCY</a></td></tr>
<tr class="memdesc:gac7ba64ff07a3e390c4290f4ffb4b8512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defined, if the redundancy features are available.  <a href="#gac7ba64ff07a3e390c4290f4ffb4b8512">More...</a><br /></td></tr>
<tr class="separator:gac7ba64ff07a3e390c4290f4ffb4b8512"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga496883570b15e30ceb5005a5834f8577"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga496883570b15e30ceb5005a5834f8577">EC_HAVE_EMERGENCY</a></td></tr>
<tr class="memdesc:ga496883570b15e30ceb5005a5834f8577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defined, if the CoE emergency ring feature is available.  <a href="#ga496883570b15e30ceb5005a5834f8577">More...</a><br /></td></tr>
<tr class="separator:ga496883570b15e30ceb5005a5834f8577"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1c03a9ed2467c2301e311854dc93718"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaf1c03a9ed2467c2301e311854dc93718">EC_HAVE_REG_ACCESS</a></td></tr>
<tr class="memdesc:gaf1c03a9ed2467c2301e311854dc93718"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defined, if the register access interface is available.  <a href="#gaf1c03a9ed2467c2301e311854dc93718">More...</a><br /></td></tr>
<tr class="separator:gaf1c03a9ed2467c2301e311854dc93718"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeede7fdd550dd23956e71d0149e41738"><td class="memItemLeft" align="right" valign="top"><a id="gaeede7fdd550dd23956e71d0149e41738"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaeede7fdd550dd23956e71d0149e41738">EC_HAVE_SELECT_REF_CLOCK</a></td></tr>
<tr class="memdesc:gaeede7fdd550dd23956e71d0149e41738"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defined if the method <a class="el" href="group__ApplicationInterface.html#ga31983aeee279fc5acaf5f7a0bb403160" title="Selects the reference clock for distributed clocks. ">ecrt_master_select_reference_clock()</a> is available. <br /></td></tr>
<tr class="separator:gaeede7fdd550dd23956e71d0149e41738"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga430c21af72fdb8db3d8ca3936f4ce0ab"><td class="memItemLeft" align="right" valign="top"><a id="ga430c21af72fdb8db3d8ca3936f4ce0ab"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga430c21af72fdb8db3d8ca3936f4ce0ab">EC_HAVE_REF_CLOCK_TIME</a></td></tr>
<tr class="memdesc:ga430c21af72fdb8db3d8ca3936f4ce0ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defined if the method <a class="el" href="group__ApplicationInterface.html#gaefb582f13442ef8b770fd308b8de949c" title="Get the lower 32 bit of the reference clock system time. ">ecrt_master_reference_clock_time()</a> is available. <br /></td></tr>
<tr class="separator:ga430c21af72fdb8db3d8ca3936f4ce0ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga380318ba3695d3b526ca72f489a86781"><td class="memItemLeft" align="right" valign="top"><a id="ga380318ba3695d3b526ca72f489a86781"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga380318ba3695d3b526ca72f489a86781">EC_HAVE_REG_BY_POS</a></td></tr>
<tr class="memdesc:ga380318ba3695d3b526ca72f489a86781"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defined if the method <a class="el" href="group__ApplicationInterface.html#ga757fd3d421f1ded8ee310c4698afb8ba" title="Registers a PDO entry using its position. ">ecrt_slave_config_reg_pdo_entry_pos()</a> is available. <br /></td></tr>
<tr class="separator:ga380318ba3695d3b526ca72f489a86781"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2c6b7c61e0a7e07671003c1954d92ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gab2c6b7c61e0a7e07671003c1954d92ee">EC_END</a>&#160;&#160;&#160;~0U</td></tr>
<tr class="memdesc:gab2c6b7c61e0a7e07671003c1954d92ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">End of list marker.  <a href="#gab2c6b7c61e0a7e07671003c1954d92ee">More...</a><br /></td></tr>
<tr class="separator:gab2c6b7c61e0a7e07671003c1954d92ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab737cd2955a397ebd0df13e9148cec9f"><td class="memItemLeft" align="right" valign="top"><a id="gab737cd2955a397ebd0df13e9148cec9f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gab737cd2955a397ebd0df13e9148cec9f">EC_MAX_SYNC_MANAGERS</a>&#160;&#160;&#160;16</td></tr>
<tr class="memdesc:gab737cd2955a397ebd0df13e9148cec9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of sync managers per slave. <br /></td></tr>
<tr class="separator:gab737cd2955a397ebd0df13e9148cec9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1811128dd257dd7f5bb7a11724a638e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gad1811128dd257dd7f5bb7a11724a638e">EC_MAX_STRING_LENGTH</a>&#160;&#160;&#160;64</td></tr>
<tr class="memdesc:gad1811128dd257dd7f5bb7a11724a638e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum string length.  <a href="#gad1811128dd257dd7f5bb7a11724a638e">More...</a><br /></td></tr>
<tr class="separator:gad1811128dd257dd7f5bb7a11724a638e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1982934cef716e45eefeba57c9d6e3ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga1982934cef716e45eefeba57c9d6e3ff">EC_MAX_PORTS</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:ga1982934cef716e45eefeba57c9d6e3ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of slave ports.  <a href="#ga1982934cef716e45eefeba57c9d6e3ff">More...</a><br /></td></tr>
<tr class="separator:ga1982934cef716e45eefeba57c9d6e3ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeffbc7820c2e642aee02c92729d4411c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaeffbc7820c2e642aee02c92729d4411c">EC_TIMEVAL2NANO</a>(TV)&#160;&#160;&#160;(((TV).tv_sec - 946684800ULL) * 1000000000ULL + (TV).tv_usec * 1000ULL)</td></tr>
<tr class="memdesc:gaeffbc7820c2e642aee02c92729d4411c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timeval to nanoseconds conversion.  <a href="#gaeffbc7820c2e642aee02c92729d4411c">More...</a><br /></td></tr>
<tr class="separator:gaeffbc7820c2e642aee02c92729d4411c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1395ca6654aae4222bc89b73e6ebfa66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga1395ca6654aae4222bc89b73e6ebfa66">EC_COE_EMERGENCY_MSG_SIZE</a>&#160;&#160;&#160;8</td></tr>
<tr class="memdesc:ga1395ca6654aae4222bc89b73e6ebfa66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of a CoE emergency message in byte.  <a href="#ga1395ca6654aae4222bc89b73e6ebfa66">More...</a><br /></td></tr>
<tr class="separator:ga1395ca6654aae4222bc89b73e6ebfa66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45bf3a61139e93c31b442b25d958e8a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga45bf3a61139e93c31b442b25d958e8a0">EC_READ_BIT</a>(DATA,  POS)&#160;&#160;&#160;((*((uint8_t *) (DATA)) &gt;&gt; (POS)) &amp; 0x01)</td></tr>
<tr class="memdesc:ga45bf3a61139e93c31b442b25d958e8a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a certain bit of an EtherCAT data byte.  <a href="#ga45bf3a61139e93c31b442b25d958e8a0">More...</a><br /></td></tr>
<tr class="separator:ga45bf3a61139e93c31b442b25d958e8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad34ea4baad01f48e2fe114624c994ae2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gad34ea4baad01f48e2fe114624c994ae2">EC_WRITE_BIT</a>(DATA,  POS,  VAL)</td></tr>
<tr class="memdesc:gad34ea4baad01f48e2fe114624c994ae2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a certain bit of an EtherCAT data byte.  <a href="#gad34ea4baad01f48e2fe114624c994ae2">More...</a><br /></td></tr>
<tr class="separator:gad34ea4baad01f48e2fe114624c994ae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfd606064b98475fc6cbe52aea6b5133"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gabfd606064b98475fc6cbe52aea6b5133">EC_READ_U8</a>(DATA)&#160;&#160;&#160;((uint8_t) *((uint8_t *) (DATA)))</td></tr>
<tr class="memdesc:gabfd606064b98475fc6cbe52aea6b5133"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read an 8-bit unsigned value from EtherCAT data.  <a href="#gabfd606064b98475fc6cbe52aea6b5133">More...</a><br /></td></tr>
<tr class="separator:gabfd606064b98475fc6cbe52aea6b5133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fe458e3d365a499db3a93e72164a2f6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga9fe458e3d365a499db3a93e72164a2f6">EC_READ_S8</a>(DATA)&#160;&#160;&#160;((int8_t) *((uint8_t *) (DATA)))</td></tr>
<tr class="memdesc:ga9fe458e3d365a499db3a93e72164a2f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read an 8-bit signed value from EtherCAT data.  <a href="#ga9fe458e3d365a499db3a93e72164a2f6">More...</a><br /></td></tr>
<tr class="separator:ga9fe458e3d365a499db3a93e72164a2f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa78148947379983986940d1980ac3db1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaa78148947379983986940d1980ac3db1">EC_READ_U16</a>(DATA)&#160;&#160;&#160;((uint16_t) le16_to_cpup((void *) (DATA)))</td></tr>
<tr class="memdesc:gaa78148947379983986940d1980ac3db1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a 16-bit unsigned value from EtherCAT data.  <a href="#gaa78148947379983986940d1980ac3db1">More...</a><br /></td></tr>
<tr class="separator:gaa78148947379983986940d1980ac3db1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga390de258c11aac1db1dba2444a69ddc3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga390de258c11aac1db1dba2444a69ddc3">EC_READ_S16</a>(DATA)&#160;&#160;&#160;((int16_t) le16_to_cpup((void *) (DATA)))</td></tr>
<tr class="memdesc:ga390de258c11aac1db1dba2444a69ddc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a 16-bit signed value from EtherCAT data.  <a href="#ga390de258c11aac1db1dba2444a69ddc3">More...</a><br /></td></tr>
<tr class="separator:ga390de258c11aac1db1dba2444a69ddc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca608a732bed6f11ddfdf073e8c3a80d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaca608a732bed6f11ddfdf073e8c3a80d">EC_READ_U32</a>(DATA)&#160;&#160;&#160;((uint32_t) le32_to_cpup((void *) (DATA)))</td></tr>
<tr class="memdesc:gaca608a732bed6f11ddfdf073e8c3a80d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a 32-bit unsigned value from EtherCAT data.  <a href="#gaca608a732bed6f11ddfdf073e8c3a80d">More...</a><br /></td></tr>
<tr class="separator:gaca608a732bed6f11ddfdf073e8c3a80d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ba3560f47cd32bcb5842a4a21f1457d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga0ba3560f47cd32bcb5842a4a21f1457d">EC_READ_S32</a>(DATA)&#160;&#160;&#160;((int32_t) le32_to_cpup((void *) (DATA)))</td></tr>
<tr class="memdesc:ga0ba3560f47cd32bcb5842a4a21f1457d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a 32-bit signed value from EtherCAT data.  <a href="#ga0ba3560f47cd32bcb5842a4a21f1457d">More...</a><br /></td></tr>
<tr class="separator:ga0ba3560f47cd32bcb5842a4a21f1457d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab91748e9aa6003a8f814169c90e90182"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gab91748e9aa6003a8f814169c90e90182">EC_READ_U64</a>(DATA)&#160;&#160;&#160;((uint64_t) le64_to_cpup((void *) (DATA)))</td></tr>
<tr class="memdesc:gab91748e9aa6003a8f814169c90e90182"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a 64-bit unsigned value from EtherCAT data.  <a href="#gab91748e9aa6003a8f814169c90e90182">More...</a><br /></td></tr>
<tr class="separator:gab91748e9aa6003a8f814169c90e90182"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac19a77ff73490a105e72552c357136ed"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gac19a77ff73490a105e72552c357136ed">EC_READ_S64</a>(DATA)&#160;&#160;&#160;((int64_t) le64_to_cpup((void *) (DATA)))</td></tr>
<tr class="memdesc:gac19a77ff73490a105e72552c357136ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a 64-bit signed value from EtherCAT data.  <a href="#gac19a77ff73490a105e72552c357136ed">More...</a><br /></td></tr>
<tr class="separator:gac19a77ff73490a105e72552c357136ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga42e7df5376954bc1cf1dde11fbf17387"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga42e7df5376954bc1cf1dde11fbf17387">EC_WRITE_U8</a>(DATA,  VAL)</td></tr>
<tr class="memdesc:ga42e7df5376954bc1cf1dde11fbf17387"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write an 8-bit unsigned value to EtherCAT data.  <a href="#ga42e7df5376954bc1cf1dde11fbf17387">More...</a><br /></td></tr>
<tr class="separator:ga42e7df5376954bc1cf1dde11fbf17387"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9bae1ebdd914c235c1178fe8eee19aa7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga9bae1ebdd914c235c1178fe8eee19aa7">EC_WRITE_S8</a>(DATA,  VAL)&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#ga42e7df5376954bc1cf1dde11fbf17387">EC_WRITE_U8</a>(DATA, VAL)</td></tr>
<tr class="memdesc:ga9bae1ebdd914c235c1178fe8eee19aa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write an 8-bit signed value to EtherCAT data.  <a href="#ga9bae1ebdd914c235c1178fe8eee19aa7">More...</a><br /></td></tr>
<tr class="separator:ga9bae1ebdd914c235c1178fe8eee19aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace219530ddd83f5f3f54d5b329b94a3d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gace219530ddd83f5f3f54d5b329b94a3d">EC_WRITE_U16</a>(DATA,  VAL)</td></tr>
<tr class="memdesc:gace219530ddd83f5f3f54d5b329b94a3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a 16-bit unsigned value to EtherCAT data.  <a href="#gace219530ddd83f5f3f54d5b329b94a3d">More...</a><br /></td></tr>
<tr class="separator:gace219530ddd83f5f3f54d5b329b94a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef851d843ec4ba3fd6109185d56946fc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaef851d843ec4ba3fd6109185d56946fc">EC_WRITE_S16</a>(DATA,  VAL)&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#gace219530ddd83f5f3f54d5b329b94a3d">EC_WRITE_U16</a>(DATA, VAL)</td></tr>
<tr class="memdesc:gaef851d843ec4ba3fd6109185d56946fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a 16-bit signed value to EtherCAT data.  <a href="#gaef851d843ec4ba3fd6109185d56946fc">More...</a><br /></td></tr>
<tr class="separator:gaef851d843ec4ba3fd6109185d56946fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9558cb79cc4015da0a551704649d1e80"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga9558cb79cc4015da0a551704649d1e80">EC_WRITE_U32</a>(DATA,  VAL)</td></tr>
<tr class="memdesc:ga9558cb79cc4015da0a551704649d1e80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a 32-bit unsigned value to EtherCAT data.  <a href="#ga9558cb79cc4015da0a551704649d1e80">More...</a><br /></td></tr>
<tr class="separator:ga9558cb79cc4015da0a551704649d1e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga233dd5af48da2bc1b1d1374851fac018"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga233dd5af48da2bc1b1d1374851fac018">EC_WRITE_S32</a>(DATA,  VAL)&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#ga9558cb79cc4015da0a551704649d1e80">EC_WRITE_U32</a>(DATA, VAL)</td></tr>
<tr class="memdesc:ga233dd5af48da2bc1b1d1374851fac018"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a 32-bit signed value to EtherCAT data.  <a href="#ga233dd5af48da2bc1b1d1374851fac018">More...</a><br /></td></tr>
<tr class="separator:ga233dd5af48da2bc1b1d1374851fac018"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2186e4bce70f3ba61c76fe5d1ddd2a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gac2186e4bce70f3ba61c76fe5d1ddd2a6">EC_WRITE_U64</a>(DATA,  VAL)</td></tr>
<tr class="memdesc:gac2186e4bce70f3ba61c76fe5d1ddd2a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a 64-bit unsigned value to EtherCAT data.  <a href="#gac2186e4bce70f3ba61c76fe5d1ddd2a6">More...</a><br /></td></tr>
<tr class="separator:gac2186e4bce70f3ba61c76fe5d1ddd2a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga228f4a47ddfa63828ea55837b30173bb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga228f4a47ddfa63828ea55837b30173bb">EC_WRITE_S64</a>(DATA,  VAL)&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#gac2186e4bce70f3ba61c76fe5d1ddd2a6">EC_WRITE_U64</a>(DATA, VAL)</td></tr>
<tr class="memdesc:ga228f4a47ddfa63828ea55837b30173bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a 64-bit signed value to EtherCAT data.  <a href="#ga228f4a47ddfa63828ea55837b30173bb">More...</a><br /></td></tr>
<tr class="separator:ga228f4a47ddfa63828ea55837b30173bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga60ec31b46fcf7994c511359402c64baa"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structec__master.html">ec_master</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a></td></tr>
<tr class="separator:ga60ec31b46fcf7994c511359402c64baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81f6717d9d4157df53b863e5ee3b04a4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structec__slave__config.html">ec_slave_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a></td></tr>
<tr class="separator:ga81f6717d9d4157df53b863e5ee3b04a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga80023c0c77cb39ae1cd70c9d8e5269fc"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structec__domain.html">ec_domain</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a></td></tr>
<tr class="separator:ga80023c0c77cb39ae1cd70c9d8e5269fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga557aaf4c32cb56eee5e76fb6063628db"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structec__sdo__request.html">ec_sdo_request</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a></td></tr>
<tr class="separator:ga557aaf4c32cb56eee5e76fb6063628db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga498dd422118de7095af5287ef9a6eed1"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structec__voe__handler.html">ec_voe_handler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a></td></tr>
<tr class="separator:ga498dd422118de7095af5287ef9a6eed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85a829c5133104f0d21f9e6684201d79"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structec__reg__request.html">ec_reg_request</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a></td></tr>
<tr class="separator:ga85a829c5133104f0d21f9e6684201d79"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga15640cfae27efdf73d687ea4f9a03338"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga15640cfae27efdf73d687ea4f9a03338">ec_slave_port_desc_t</a> { <a class="el" href="group__ApplicationInterface.html#gga15640cfae27efdf73d687ea4f9a03338a714b71ad4e085ce97f819853779e6c82">EC_PORT_NOT_IMPLEMENTED</a>, 
<a class="el" href="group__ApplicationInterface.html#gga15640cfae27efdf73d687ea4f9a03338a696e2f14e40660b267334b44aa529bb6">EC_PORT_NOT_CONFIGURED</a>, 
<a class="el" href="group__ApplicationInterface.html#gga15640cfae27efdf73d687ea4f9a03338ac06e10ab39eb8c7585e6b3e85aa901b2">EC_PORT_EBUS</a>, 
<a class="el" href="group__ApplicationInterface.html#gga15640cfae27efdf73d687ea4f9a03338a0a5db996018465752d5f6d5bc1caad39">EC_PORT_MII</a>
 }<tr class="memdesc:ga15640cfae27efdf73d687ea4f9a03338"><td class="mdescLeft">&#160;</td><td class="mdescRight">EtherCAT slave port descriptor.  <a href="group__ApplicationInterface.html#ga15640cfae27efdf73d687ea4f9a03338">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga15640cfae27efdf73d687ea4f9a03338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga00daf142097ba5eb8b58b996a8a730af"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga00daf142097ba5eb8b58b996a8a730af">ec_wc_state_t</a> { <a class="el" href="group__ApplicationInterface.html#gga00daf142097ba5eb8b58b996a8a730afa8dff19321b05e9aed5ffc41c25ea3de2">EC_WC_ZERO</a> = 0, 
<a class="el" href="group__ApplicationInterface.html#gga00daf142097ba5eb8b58b996a8a730afaef084e88705396b87feea4e9dca38c22">EC_WC_INCOMPLETE</a>, 
<a class="el" href="group__ApplicationInterface.html#gga00daf142097ba5eb8b58b996a8a730afa46aaefd30aadeede4109b23491d0077f">EC_WC_COMPLETE</a>
 }<tr class="memdesc:ga00daf142097ba5eb8b58b996a8a730af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Domain working counter interpretation.  <a href="group__ApplicationInterface.html#ga00daf142097ba5eb8b58b996a8a730af">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga00daf142097ba5eb8b58b996a8a730af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga703c4e47384b3601e7605d6d910aaba1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga703c4e47384b3601e7605d6d910aaba1">ec_direction_t</a> { <a class="el" href="group__ApplicationInterface.html#gga703c4e47384b3601e7605d6d910aaba1a1d65420e76eb63b731b1148054c40054">EC_DIR_INVALID</a>, 
<a class="el" href="group__ApplicationInterface.html#gga703c4e47384b3601e7605d6d910aaba1aebf26f1d5c09cf002af5b09d9cb59b78">EC_DIR_OUTPUT</a>, 
<a class="el" href="group__ApplicationInterface.html#gga703c4e47384b3601e7605d6d910aaba1a6b3c6b53010076d846724fec434512e4">EC_DIR_INPUT</a>, 
<a class="el" href="group__ApplicationInterface.html#gga703c4e47384b3601e7605d6d910aaba1a4e496ac3681435d672c73b2198b5ca4d">EC_DIR_COUNT</a>
 }<tr class="memdesc:ga703c4e47384b3601e7605d6d910aaba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direction type for PDO assignment functions.  <a href="group__ApplicationInterface.html#ga703c4e47384b3601e7605d6d910aaba1">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga703c4e47384b3601e7605d6d910aaba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa31bcc2beed6a1f62ec495337c239177"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaa31bcc2beed6a1f62ec495337c239177">ec_watchdog_mode_t</a> { <a class="el" href="group__ApplicationInterface.html#ggaa31bcc2beed6a1f62ec495337c239177a067dbac72731bbc99525c11777552703">EC_WD_DEFAULT</a>, 
<a class="el" href="group__ApplicationInterface.html#ggaa31bcc2beed6a1f62ec495337c239177aee16c13a5ec3c6105a41a1d4c562e82d">EC_WD_ENABLE</a>, 
<a class="el" href="group__ApplicationInterface.html#ggaa31bcc2beed6a1f62ec495337c239177adfee5b587c2fac3791f4b13ccd64645a">EC_WD_DISABLE</a>
 }<tr class="memdesc:gaa31bcc2beed6a1f62ec495337c239177"><td class="mdescLeft">&#160;</td><td class="mdescRight">Watchdog mode for sync manager configuration.  <a href="group__ApplicationInterface.html#gaa31bcc2beed6a1f62ec495337c239177">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gaa31bcc2beed6a1f62ec495337c239177"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae94149f829f04960c62d63764a7779df"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a> { <a class="el" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfa8a9e6590d04b31b12b03d7071d106cf5">EC_REQUEST_UNUSED</a>, 
<a class="el" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfad031578ebd61309cf3e0f618968fd3a2">EC_REQUEST_BUSY</a>, 
<a class="el" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfab2473480381319839a822fc009aa0db5">EC_REQUEST_SUCCESS</a>, 
<a class="el" href="group__ApplicationInterface.html#ggae94149f829f04960c62d63764a7779dfa870ae0f25d0f780ebcaac16c920f00e3">EC_REQUEST_ERROR</a>
 }<tr class="memdesc:gae94149f829f04960c62d63764a7779df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request state.  <a href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gae94149f829f04960c62d63764a7779df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18c064146090e45d36c05876c546caea"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga18c064146090e45d36c05876c546caea">ec_al_state_t</a> { <a class="el" href="group__ApplicationInterface.html#gga18c064146090e45d36c05876c546caeaa1e8639024a180fdc380559b8f7a02b4f">EC_AL_STATE_INIT</a> = 1, 
<a class="el" href="group__ApplicationInterface.html#gga18c064146090e45d36c05876c546caeaaf31a3511a6004d7909a71911a289681f">EC_AL_STATE_PREOP</a> = 2, 
<a class="el" href="group__ApplicationInterface.html#gga18c064146090e45d36c05876c546caeaafb41d7398780a3f09ba2c19d624b2668">EC_AL_STATE_SAFEOP</a> = 4, 
<a class="el" href="group__ApplicationInterface.html#gga18c064146090e45d36c05876c546caeaa4f746cb4e141c28b8aeb9c6cfe78177e">EC_AL_STATE_OP</a> = 8
 }<tr class="memdesc:ga18c064146090e45d36c05876c546caea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Application-layer state.  <a href="group__ApplicationInterface.html#ga18c064146090e45d36c05876c546caea">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga18c064146090e45d36c05876c546caea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga242aedc8a03b7c4d0121bc670b68bf5b"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga242aedc8a03b7c4d0121bc670b68bf5b">ecrt_version_magic</a> (void)</td></tr>
<tr class="memdesc:ga242aedc8a03b7c4d0121bc670b68bf5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version magic of the realtime interface.  <a href="#ga242aedc8a03b7c4d0121bc670b68bf5b">More...</a><br /></td></tr>
<tr class="separator:ga242aedc8a03b7c4d0121bc670b68bf5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb85534b6fcba3fa1fab6c81173b2ed1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gafb85534b6fcba3fa1fab6c81173b2ed1">ecrt_request_master</a> (unsigned int master_index)</td></tr>
<tr class="memdesc:gafb85534b6fcba3fa1fab6c81173b2ed1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests an EtherCAT master for realtime operation.  <a href="#gafb85534b6fcba3fa1fab6c81173b2ed1">More...</a><br /></td></tr>
<tr class="separator:gafb85534b6fcba3fa1fab6c81173b2ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64219721098ec5069eab27f1923de9ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga64219721098ec5069eab27f1923de9ea">ecrt_release_master</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:ga64219721098ec5069eab27f1923de9ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases a requested EtherCAT master.  <a href="#ga64219721098ec5069eab27f1923de9ea">More...</a><br /></td></tr>
<tr class="separator:ga64219721098ec5069eab27f1923de9ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga644db1b4181bfe2943bb8fa81bd027f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga644db1b4181bfe2943bb8fa81bd027f7">ecrt_master_callbacks</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, void(*send_cb)(void *), void(*receive_cb)(void *), void *cb_data)</td></tr>
<tr class="memdesc:ga644db1b4181bfe2943bb8fa81bd027f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the locking callbacks.  <a href="#ga644db1b4181bfe2943bb8fa81bd027f7">More...</a><br /></td></tr>
<tr class="separator:ga644db1b4181bfe2943bb8fa81bd027f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae4ede07f05b211667078ab2b2396da6e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gae4ede07f05b211667078ab2b2396da6e">ecrt_master_create_domain</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:gae4ede07f05b211667078ab2b2396da6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new process data domain.  <a href="#gae4ede07f05b211667078ab2b2396da6e">More...</a><br /></td></tr>
<tr class="separator:gae4ede07f05b211667078ab2b2396da6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa190a5d3aa2a72b8950ef93aa7baab0b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaa190a5d3aa2a72b8950ef93aa7baab0b">ecrt_master_slave_config</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint16_t alias, uint16_t position, uint32_t vendor_id, uint32_t product_code)</td></tr>
<tr class="memdesc:gaa190a5d3aa2a72b8950ef93aa7baab0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtains a slave configuration.  <a href="#gaa190a5d3aa2a72b8950ef93aa7baab0b">More...</a><br /></td></tr>
<tr class="separator:gaa190a5d3aa2a72b8950ef93aa7baab0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31983aeee279fc5acaf5f7a0bb403160"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga31983aeee279fc5acaf5f7a0bb403160">ecrt_master_select_reference_clock</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, <a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc)</td></tr>
<tr class="memdesc:ga31983aeee279fc5acaf5f7a0bb403160"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects the reference clock for distributed clocks.  <a href="#ga31983aeee279fc5acaf5f7a0bb403160">More...</a><br /></td></tr>
<tr class="separator:ga31983aeee279fc5acaf5f7a0bb403160"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaefdb3b2d46b945fa6ebd65c4c5f16b8b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaefdb3b2d46b945fa6ebd65c4c5f16b8b">ecrt_master</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, <a class="el" href="structec__master__info__t.html">ec_master_info_t</a> *master_info)</td></tr>
<tr class="memdesc:gaefdb3b2d46b945fa6ebd65c4c5f16b8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtains master information.  <a href="#gaefdb3b2d46b945fa6ebd65c4c5f16b8b">More...</a><br /></td></tr>
<tr class="separator:gaefdb3b2d46b945fa6ebd65c4c5f16b8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a1a9398f7c1e17e4da8243fe03a7a80"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga8a1a9398f7c1e17e4da8243fe03a7a80">ecrt_master_get_slave</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint16_t slave_position, <a class="el" href="structec__slave__info__t.html">ec_slave_info_t</a> *slave_info)</td></tr>
<tr class="memdesc:ga8a1a9398f7c1e17e4da8243fe03a7a80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtains slave information.  <a href="#ga8a1a9398f7c1e17e4da8243fe03a7a80">More...</a><br /></td></tr>
<tr class="separator:ga8a1a9398f7c1e17e4da8243fe03a7a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52ec1296b7c6c21e86b906ef4edc6208"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga52ec1296b7c6c21e86b906ef4edc6208">ecrt_master_sdo_download</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint16_t slave_position, uint16_t index, uint8_t subindex, uint8_t *data, size_t data_size, uint32_t *abort_code)</td></tr>
<tr class="memdesc:ga52ec1296b7c6c21e86b906ef4edc6208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes an SDO download request to write data to a slave.  <a href="#ga52ec1296b7c6c21e86b906ef4edc6208">More...</a><br /></td></tr>
<tr class="separator:ga52ec1296b7c6c21e86b906ef4edc6208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga357ce803ce5e7a8e59f14bf3eaf11439"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga357ce803ce5e7a8e59f14bf3eaf11439">ecrt_master_sdo_download_complete</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint16_t slave_position, uint16_t index, uint8_t *data, size_t data_size, uint32_t *abort_code)</td></tr>
<tr class="memdesc:ga357ce803ce5e7a8e59f14bf3eaf11439"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes an SDO download request to write data to a slave via complete access.  <a href="#ga357ce803ce5e7a8e59f14bf3eaf11439">More...</a><br /></td></tr>
<tr class="separator:ga357ce803ce5e7a8e59f14bf3eaf11439"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d6d538e803530ac104c9bf2d37a24c4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga8d6d538e803530ac104c9bf2d37a24c4">ecrt_master_sdo_upload</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint16_t slave_position, uint16_t index, uint8_t subindex, uint8_t *target, size_t target_size, size_t *result_size, uint32_t *abort_code)</td></tr>
<tr class="memdesc:ga8d6d538e803530ac104c9bf2d37a24c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes an SDO upload request to read data from a slave.  <a href="#ga8d6d538e803530ac104c9bf2d37a24c4">More...</a><br /></td></tr>
<tr class="separator:ga8d6d538e803530ac104c9bf2d37a24c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ddd58b7a66b774b6037edbc50c73293"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga5ddd58b7a66b774b6037edbc50c73293">ecrt_master_write_idn</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint16_t slave_position, uint8_t drive_no, uint16_t idn, uint8_t *data, size_t data_size, uint16_t *error_code)</td></tr>
<tr class="memdesc:ga5ddd58b7a66b774b6037edbc50c73293"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes an SoE write request.  <a href="#ga5ddd58b7a66b774b6037edbc50c73293">More...</a><br /></td></tr>
<tr class="separator:ga5ddd58b7a66b774b6037edbc50c73293"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd875ea0739ebb3524269070d9357c4b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gacd875ea0739ebb3524269070d9357c4b">ecrt_master_read_idn</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint16_t slave_position, uint8_t drive_no, uint16_t idn, uint8_t *target, size_t target_size, size_t *result_size, uint16_t *error_code)</td></tr>
<tr class="memdesc:gacd875ea0739ebb3524269070d9357c4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes an SoE read request.  <a href="#gacd875ea0739ebb3524269070d9357c4b">More...</a><br /></td></tr>
<tr class="separator:gacd875ea0739ebb3524269070d9357c4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa44bdeca52f4e821838f4291637103ac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac">ecrt_master_activate</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:gaa44bdeca52f4e821838f4291637103ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finishes the configuration phase and prepares for cyclic operation.  <a href="#gaa44bdeca52f4e821838f4291637103ac">More...</a><br /></td></tr>
<tr class="separator:gaa44bdeca52f4e821838f4291637103ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46b3fe78742ddf929b624103432ec4dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga46b3fe78742ddf929b624103432ec4dd">ecrt_master_deactivate</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:ga46b3fe78742ddf929b624103432ec4dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deactivates the master.  <a href="#ga46b3fe78742ddf929b624103432ec4dd">More...</a><br /></td></tr>
<tr class="separator:ga46b3fe78742ddf929b624103432ec4dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae316a920dba8c28e14138b4bf394c230"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gae316a920dba8c28e14138b4bf394c230">ecrt_master_set_send_interval</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, size_t send_interval)</td></tr>
<tr class="memdesc:gae316a920dba8c28e14138b4bf394c230"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set interval between calls to <a class="el" href="group__ApplicationInterface.html#ga453f787866ee66afb98130cf4723762d" title="Sends all datagrams in the queue. ">ecrt_master_send()</a>.  <a href="#gae316a920dba8c28e14138b4bf394c230">More...</a><br /></td></tr>
<tr class="separator:gae316a920dba8c28e14138b4bf394c230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga453f787866ee66afb98130cf4723762d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga453f787866ee66afb98130cf4723762d">ecrt_master_send</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:ga453f787866ee66afb98130cf4723762d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends all datagrams in the queue.  <a href="#ga453f787866ee66afb98130cf4723762d">More...</a><br /></td></tr>
<tr class="separator:ga453f787866ee66afb98130cf4723762d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9544e79db51c59a96af6493025cdc933"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga9544e79db51c59a96af6493025cdc933">ecrt_master_receive</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:ga9544e79db51c59a96af6493025cdc933"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fetches received frames from the hardware and processes the datagrams.  <a href="#ga9544e79db51c59a96af6493025cdc933">More...</a><br /></td></tr>
<tr class="separator:ga9544e79db51c59a96af6493025cdc933"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62360cb642f555269d64df1111f6c771"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga62360cb642f555269d64df1111f6c771">ecrt_master_send_ext</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:ga62360cb642f555269d64df1111f6c771"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends non-application datagrams.  <a href="#ga62360cb642f555269d64df1111f6c771">More...</a><br /></td></tr>
<tr class="separator:ga62360cb642f555269d64df1111f6c771"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f623ede71e87dd0e9d6ab87086f0d4f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga9f623ede71e87dd0e9d6ab87086f0d4f">ecrt_master_state</a> (const <a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, <a class="el" href="structec__master__state__t.html">ec_master_state_t</a> *state)</td></tr>
<tr class="memdesc:ga9f623ede71e87dd0e9d6ab87086f0d4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current master state.  <a href="#ga9f623ede71e87dd0e9d6ab87086f0d4f">More...</a><br /></td></tr>
<tr class="separator:ga9f623ede71e87dd0e9d6ab87086f0d4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90c4d1a88ecc1f3a49ba73dad4efdb14"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga90c4d1a88ecc1f3a49ba73dad4efdb14">ecrt_master_link_state</a> (const <a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, unsigned int dev_idx, <a class="el" href="structec__master__link__state__t.html">ec_master_link_state_t</a> *state)</td></tr>
<tr class="memdesc:ga90c4d1a88ecc1f3a49ba73dad4efdb14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the current state of a redundant link.  <a href="#ga90c4d1a88ecc1f3a49ba73dad4efdb14">More...</a><br /></td></tr>
<tr class="separator:ga90c4d1a88ecc1f3a49ba73dad4efdb14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga567ccc15f09d5722fd6269f297b72a58"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga567ccc15f09d5722fd6269f297b72a58">ecrt_master_application_time</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint64_t app_time)</td></tr>
<tr class="memdesc:ga567ccc15f09d5722fd6269f297b72a58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the application time.  <a href="#ga567ccc15f09d5722fd6269f297b72a58">More...</a><br /></td></tr>
<tr class="separator:ga567ccc15f09d5722fd6269f297b72a58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabdc6735565f209d8ab8473f34617a526"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gabdc6735565f209d8ab8473f34617a526">ecrt_master_sync_reference_clock</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:gabdc6735565f209d8ab8473f34617a526"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queues the DC reference clock drift compensation datagram for sending.  <a href="#gabdc6735565f209d8ab8473f34617a526">More...</a><br /></td></tr>
<tr class="separator:gabdc6735565f209d8ab8473f34617a526"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb8b8f705803689e789f022b01eb8deb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gadb8b8f705803689e789f022b01eb8deb">ecrt_master_sync_slave_clocks</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:gadb8b8f705803689e789f022b01eb8deb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queues the DC clock drift compensation datagram for sending.  <a href="#gadb8b8f705803689e789f022b01eb8deb">More...</a><br /></td></tr>
<tr class="separator:gadb8b8f705803689e789f022b01eb8deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaefb582f13442ef8b770fd308b8de949c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaefb582f13442ef8b770fd308b8de949c">ecrt_master_reference_clock_time</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, uint32_t *time)</td></tr>
<tr class="memdesc:gaefb582f13442ef8b770fd308b8de949c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the lower 32 bit of the reference clock system time.  <a href="#gaefb582f13442ef8b770fd308b8de949c">More...</a><br /></td></tr>
<tr class="separator:gaefb582f13442ef8b770fd308b8de949c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3df6e34876cbad6e3e2a4d51ec1ba812"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga3df6e34876cbad6e3e2a4d51ec1ba812">ecrt_master_sync_monitor_queue</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:ga3df6e34876cbad6e3e2a4d51ec1ba812"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queues the DC synchrony monitoring datagram for sending.  <a href="#ga3df6e34876cbad6e3e2a4d51ec1ba812">More...</a><br /></td></tr>
<tr class="separator:ga3df6e34876cbad6e3e2a4d51ec1ba812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a0b4bef9b058f9a7752878f7c07cdf3"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga0a0b4bef9b058f9a7752878f7c07cdf3">ecrt_master_sync_monitor_process</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:ga0a0b4bef9b058f9a7752878f7c07cdf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Processes the DC synchrony monitoring datagram.  <a href="#ga0a0b4bef9b058f9a7752878f7c07cdf3">More...</a><br /></td></tr>
<tr class="separator:ga0a0b4bef9b058f9a7752878f7c07cdf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6455adf50e074c51894113adb49e00c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gab6455adf50e074c51894113adb49e00c">ecrt_master_reset</a> (<a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master)</td></tr>
<tr class="memdesc:gab6455adf50e074c51894113adb49e00c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retry configuring slaves.  <a href="#gab6455adf50e074c51894113adb49e00c">More...</a><br /></td></tr>
<tr class="separator:gab6455adf50e074c51894113adb49e00c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4ac6eae111bdbf1d4cd09fa2f965a887"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga4ac6eae111bdbf1d4cd09fa2f965a887">ecrt_slave_config_sync_manager</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint8_t sync_index, <a class="el" href="group__ApplicationInterface.html#ga703c4e47384b3601e7605d6d910aaba1">ec_direction_t</a> direction, <a class="el" href="group__ApplicationInterface.html#gaa31bcc2beed6a1f62ec495337c239177">ec_watchdog_mode_t</a> watchdog_mode)</td></tr>
<tr class="memdesc:ga4ac6eae111bdbf1d4cd09fa2f965a887"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure a sync manager.  <a href="#ga4ac6eae111bdbf1d4cd09fa2f965a887">More...</a><br /></td></tr>
<tr class="separator:ga4ac6eae111bdbf1d4cd09fa2f965a887"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba67c3e575110297f9fdcffad573d367"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaba67c3e575110297f9fdcffad573d367">ecrt_slave_config_watchdog</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t watchdog_divider, uint16_t watchdog_intervals)</td></tr>
<tr class="memdesc:gaba67c3e575110297f9fdcffad573d367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure a slave's watchdog times.  <a href="#gaba67c3e575110297f9fdcffad573d367">More...</a><br /></td></tr>
<tr class="separator:gaba67c3e575110297f9fdcffad573d367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef2958fe19c088978857e7b91f692630"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaef2958fe19c088978857e7b91f692630">ecrt_slave_config_pdo_assign_add</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint8_t sync_index, uint16_t index)</td></tr>
<tr class="memdesc:gaef2958fe19c088978857e7b91f692630"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a PDO to a sync manager's PDO assignment.  <a href="#gaef2958fe19c088978857e7b91f692630">More...</a><br /></td></tr>
<tr class="separator:gaef2958fe19c088978857e7b91f692630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc2fb2a662bd8129dea5330e5e313b5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gafc2fb2a662bd8129dea5330e5e313b5f">ecrt_slave_config_pdo_assign_clear</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint8_t sync_index)</td></tr>
<tr class="memdesc:gafc2fb2a662bd8129dea5330e5e313b5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a sync manager's PDO assignment.  <a href="#gafc2fb2a662bd8129dea5330e5e313b5f">More...</a><br /></td></tr>
<tr class="separator:gafc2fb2a662bd8129dea5330e5e313b5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a0f83e1c3e3edf978b3017f94cc375d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga3a0f83e1c3e3edf978b3017f94cc375d">ecrt_slave_config_pdo_mapping_add</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t pdo_index, uint16_t entry_index, uint8_t entry_subindex, uint8_t entry_bit_length)</td></tr>
<tr class="memdesc:ga3a0f83e1c3e3edf978b3017f94cc375d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a PDO entry to the given PDO's mapping.  <a href="#ga3a0f83e1c3e3edf978b3017f94cc375d">More...</a><br /></td></tr>
<tr class="separator:ga3a0f83e1c3e3edf978b3017f94cc375d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8496abee3bd32fec5ffd74bf4705cc53"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga8496abee3bd32fec5ffd74bf4705cc53">ecrt_slave_config_pdo_mapping_clear</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t pdo_index)</td></tr>
<tr class="memdesc:ga8496abee3bd32fec5ffd74bf4705cc53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the mapping of a given PDO.  <a href="#ga8496abee3bd32fec5ffd74bf4705cc53">More...</a><br /></td></tr>
<tr class="separator:ga8496abee3bd32fec5ffd74bf4705cc53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7bc2683699a5c0c551f0cfdc90c1a559"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559">ecrt_slave_config_pdos</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, unsigned int n_syncs, const <a class="el" href="structec__sync__info__t.html">ec_sync_info_t</a> syncs[])</td></tr>
<tr class="memdesc:ga7bc2683699a5c0c551f0cfdc90c1a559"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specify a complete PDO configuration.  <a href="#ga7bc2683699a5c0c551f0cfdc90c1a559">More...</a><br /></td></tr>
<tr class="separator:ga7bc2683699a5c0c551f0cfdc90c1a559"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga44fe6bd549328c34ca4ed6893765206f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga44fe6bd549328c34ca4ed6893765206f">ecrt_slave_config_reg_pdo_entry</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t entry_index, uint8_t entry_subindex, <a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain, unsigned int *bit_position)</td></tr>
<tr class="memdesc:ga44fe6bd549328c34ca4ed6893765206f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a PDO entry for process data exchange in a domain.  <a href="#ga44fe6bd549328c34ca4ed6893765206f">More...</a><br /></td></tr>
<tr class="separator:ga44fe6bd549328c34ca4ed6893765206f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga757fd3d421f1ded8ee310c4698afb8ba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga757fd3d421f1ded8ee310c4698afb8ba">ecrt_slave_config_reg_pdo_entry_pos</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint8_t sync_index, unsigned int pdo_pos, unsigned int entry_pos, <a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain, unsigned int *bit_position)</td></tr>
<tr class="memdesc:ga757fd3d421f1ded8ee310c4698afb8ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a PDO entry using its position.  <a href="#ga757fd3d421f1ded8ee310c4698afb8ba">More...</a><br /></td></tr>
<tr class="separator:ga757fd3d421f1ded8ee310c4698afb8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga05858fdb5052dfb1161a81d2f8beb553"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga05858fdb5052dfb1161a81d2f8beb553">ecrt_slave_config_dc</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t assign_activate, uint32_t sync0_cycle, int32_t sync0_shift, uint32_t sync1_cycle, int32_t sync1_shift)</td></tr>
<tr class="memdesc:ga05858fdb5052dfb1161a81d2f8beb553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure distributed clocks.  <a href="#ga05858fdb5052dfb1161a81d2f8beb553">More...</a><br /></td></tr>
<tr class="separator:ga05858fdb5052dfb1161a81d2f8beb553"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf5b3147d6fa082ed73417cf7aa4e240"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gacf5b3147d6fa082ed73417cf7aa4e240">ecrt_slave_config_sdo</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t index, uint8_t subindex, const uint8_t *data, size_t size)</td></tr>
<tr class="memdesc:gacf5b3147d6fa082ed73417cf7aa4e240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an SDO configuration.  <a href="#gacf5b3147d6fa082ed73417cf7aa4e240">More...</a><br /></td></tr>
<tr class="separator:gacf5b3147d6fa082ed73417cf7aa4e240"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93e038f9065d20ea3fa5738c495f0ae5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga93e038f9065d20ea3fa5738c495f0ae5">ecrt_slave_config_sdo8</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t sdo_index, uint8_t sdo_subindex, uint8_t value)</td></tr>
<tr class="memdesc:ga93e038f9065d20ea3fa5738c495f0ae5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a configuration value for an 8-bit SDO.  <a href="#ga93e038f9065d20ea3fa5738c495f0ae5">More...</a><br /></td></tr>
<tr class="separator:ga93e038f9065d20ea3fa5738c495f0ae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaacb7fefc226e3a3c0225c39d233d2fa8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaacb7fefc226e3a3c0225c39d233d2fa8">ecrt_slave_config_sdo16</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t sdo_index, uint8_t sdo_subindex, uint16_t value)</td></tr>
<tr class="memdesc:gaacb7fefc226e3a3c0225c39d233d2fa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a configuration value for a 16-bit SDO.  <a href="#gaacb7fefc226e3a3c0225c39d233d2fa8">More...</a><br /></td></tr>
<tr class="separator:gaacb7fefc226e3a3c0225c39d233d2fa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a87e59a5448389907652ddb2f5768fd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga0a87e59a5448389907652ddb2f5768fd">ecrt_slave_config_sdo32</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t sdo_index, uint8_t sdo_subindex, uint32_t value)</td></tr>
<tr class="memdesc:ga0a87e59a5448389907652ddb2f5768fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a configuration value for a 32-bit SDO.  <a href="#ga0a87e59a5448389907652ddb2f5768fd">More...</a><br /></td></tr>
<tr class="separator:ga0a87e59a5448389907652ddb2f5768fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4231948c36c707fd5bc95e2e813ff7af"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga4231948c36c707fd5bc95e2e813ff7af">ecrt_slave_config_complete_sdo</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t index, const uint8_t *data, size_t size)</td></tr>
<tr class="memdesc:ga4231948c36c707fd5bc95e2e813ff7af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add configuration data for a complete SDO.  <a href="#ga4231948c36c707fd5bc95e2e813ff7af">More...</a><br /></td></tr>
<tr class="separator:ga4231948c36c707fd5bc95e2e813ff7af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae2540078423afe6763c5b7a2554f30bf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gae2540078423afe6763c5b7a2554f30bf">ecrt_slave_config_emerg_size</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, size_t elements)</td></tr>
<tr class="memdesc:gae2540078423afe6763c5b7a2554f30bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the size of the CoE emergency ring buffer.  <a href="#gae2540078423afe6763c5b7a2554f30bf">More...</a><br /></td></tr>
<tr class="separator:gae2540078423afe6763c5b7a2554f30bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b58a60d15afe8bab546a766653f227f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga6b58a60d15afe8bab546a766653f227f">ecrt_slave_config_emerg_pop</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint8_t *target)</td></tr>
<tr class="memdesc:ga6b58a60d15afe8bab546a766653f227f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read and remove one record from the CoE emergency ring buffer.  <a href="#ga6b58a60d15afe8bab546a766653f227f">More...</a><br /></td></tr>
<tr class="separator:ga6b58a60d15afe8bab546a766653f227f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad61c6ab7adf19f18953f34c8132c30a7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gad61c6ab7adf19f18953f34c8132c30a7">ecrt_slave_config_emerg_clear</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc)</td></tr>
<tr class="memdesc:gad61c6ab7adf19f18953f34c8132c30a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears CoE emergency ring buffer and the overrun counter.  <a href="#gad61c6ab7adf19f18953f34c8132c30a7">More...</a><br /></td></tr>
<tr class="separator:gad61c6ab7adf19f18953f34c8132c30a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad47666902ef543c1233a8fafcaa9e321"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gad47666902ef543c1233a8fafcaa9e321">ecrt_slave_config_emerg_overruns</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc)</td></tr>
<tr class="memdesc:gad47666902ef543c1233a8fafcaa9e321"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the number of CoE emergency overruns.  <a href="#gad47666902ef543c1233a8fafcaa9e321">More...</a><br /></td></tr>
<tr class="separator:gad47666902ef543c1233a8fafcaa9e321"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14aa167c0d4afd84b0fbada417a204f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga14aa167c0d4afd84b0fbada417a204f1">ecrt_slave_config_create_sdo_request</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint16_t index, uint8_t subindex, size_t size)</td></tr>
<tr class="memdesc:ga14aa167c0d4afd84b0fbada417a204f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an SDO request to exchange SDOs during realtime operation.  <a href="#ga14aa167c0d4afd84b0fbada417a204f1">More...</a><br /></td></tr>
<tr class="separator:ga14aa167c0d4afd84b0fbada417a204f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6341627f6bf764312dd6e8c3140e9be1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga6341627f6bf764312dd6e8c3140e9be1">ecrt_slave_config_create_voe_handler</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, size_t size)</td></tr>
<tr class="memdesc:ga6341627f6bf764312dd6e8c3140e9be1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an VoE handler to exchange vendor-specific data during realtime operation.  <a href="#ga6341627f6bf764312dd6e8c3140e9be1">More...</a><br /></td></tr>
<tr class="separator:ga6341627f6bf764312dd6e8c3140e9be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1805e57c39e7bb12840c5e2589021dbe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga1805e57c39e7bb12840c5e2589021dbe">ecrt_slave_config_create_reg_request</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, size_t size)</td></tr>
<tr class="memdesc:ga1805e57c39e7bb12840c5e2589021dbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a register request to exchange EtherCAT register contents during realtime operation.  <a href="#ga1805e57c39e7bb12840c5e2589021dbe">More...</a><br /></td></tr>
<tr class="separator:ga1805e57c39e7bb12840c5e2589021dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6b99c8912ed48a4ddce3d9470083dee1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga6b99c8912ed48a4ddce3d9470083dee1">ecrt_slave_config_state</a> (const <a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, <a class="el" href="structec__slave__config__state__t.html">ec_slave_config_state_t</a> *state)</td></tr>
<tr class="memdesc:ga6b99c8912ed48a4ddce3d9470083dee1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the state of the slave configuration.  <a href="#ga6b99c8912ed48a4ddce3d9470083dee1">More...</a><br /></td></tr>
<tr class="separator:ga6b99c8912ed48a4ddce3d9470083dee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3d42e8188c64eaf794e8dc91a61b60b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaa3d42e8188c64eaf794e8dc91a61b60b">ecrt_slave_config_idn</a> (<a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *sc, uint8_t drive_no, uint16_t idn, <a class="el" href="group__ApplicationInterface.html#ga18c064146090e45d36c05876c546caea">ec_al_state_t</a> state, const uint8_t *data, size_t size)</td></tr>
<tr class="memdesc:gaa3d42e8188c64eaf794e8dc91a61b60b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an SoE IDN configuration.  <a href="#gaa3d42e8188c64eaf794e8dc91a61b60b">More...</a><br /></td></tr>
<tr class="separator:gaa3d42e8188c64eaf794e8dc91a61b60b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa34bed589e356727aaf0bc7ceee0ed57"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaa34bed589e356727aaf0bc7ceee0ed57">ecrt_domain_reg_pdo_entry_list</a> (<a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain, const <a class="el" href="structec__pdo__entry__reg__t.html">ec_pdo_entry_reg_t</a> *pdo_entry_regs)</td></tr>
<tr class="memdesc:gaa34bed589e356727aaf0bc7ceee0ed57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a bunch of PDO entries for a domain.  <a href="#gaa34bed589e356727aaf0bc7ceee0ed57">More...</a><br /></td></tr>
<tr class="separator:gaa34bed589e356727aaf0bc7ceee0ed57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc492ba8af1b53bfec60748c441f7a10"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gadc492ba8af1b53bfec60748c441f7a10">ecrt_domain_size</a> (const <a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain)</td></tr>
<tr class="memdesc:gadc492ba8af1b53bfec60748c441f7a10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current size of the domain's process data.  <a href="#gadc492ba8af1b53bfec60748c441f7a10">More...</a><br /></td></tr>
<tr class="separator:gadc492ba8af1b53bfec60748c441f7a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaafe96aea4c5babcfe433f41e0c84a165"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaafe96aea4c5babcfe433f41e0c84a165">ecrt_domain_external_memory</a> (<a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain, uint8_t *memory)</td></tr>
<tr class="memdesc:gaafe96aea4c5babcfe433f41e0c84a165"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide external memory to store the domain's process data.  <a href="#gaafe96aea4c5babcfe433f41e0c84a165">More...</a><br /></td></tr>
<tr class="separator:gaafe96aea4c5babcfe433f41e0c84a165"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga701738b03629d552c15c2cdd9b7b99c2"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga701738b03629d552c15c2cdd9b7b99c2">ecrt_domain_data</a> (<a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain)</td></tr>
<tr class="memdesc:ga701738b03629d552c15c2cdd9b7b99c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the domain's process data.  <a href="#ga701738b03629d552c15c2cdd9b7b99c2">More...</a><br /></td></tr>
<tr class="separator:ga701738b03629d552c15c2cdd9b7b99c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace65c0f94caa798d1f5930c1317dfd5c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gace65c0f94caa798d1f5930c1317dfd5c">ecrt_domain_process</a> (<a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain)</td></tr>
<tr class="memdesc:gace65c0f94caa798d1f5930c1317dfd5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the states of the domain's datagrams.  <a href="#gace65c0f94caa798d1f5930c1317dfd5c">More...</a><br /></td></tr>
<tr class="separator:gace65c0f94caa798d1f5930c1317dfd5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5367e6982fae333765231a2c50579a96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga5367e6982fae333765231a2c50579a96">ecrt_domain_queue</a> (<a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain)</td></tr>
<tr class="memdesc:ga5367e6982fae333765231a2c50579a96"><td class="mdescLeft">&#160;</td><td class="mdescRight">(Re-)queues all domain datagrams in the master's datagram queue.  <a href="#ga5367e6982fae333765231a2c50579a96">More...</a><br /></td></tr>
<tr class="separator:ga5367e6982fae333765231a2c50579a96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab8fdd6b9dc3f33d22800d8c517f864a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaab8fdd6b9dc3f33d22800d8c517f864a">ecrt_domain_state</a> (const <a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *domain, <a class="el" href="structec__domain__state__t.html">ec_domain_state_t</a> *state)</td></tr>
<tr class="memdesc:gaab8fdd6b9dc3f33d22800d8c517f864a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the state of a domain.  <a href="#gaab8fdd6b9dc3f33d22800d8c517f864a">More...</a><br /></td></tr>
<tr class="separator:gaab8fdd6b9dc3f33d22800d8c517f864a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae002eb267f69d91de0c83a5f4f349372"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gae002eb267f69d91de0c83a5f4f349372">ecrt_sdo_request_index</a> (<a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *req, uint16_t index, uint8_t subindex)</td></tr>
<tr class="memdesc:gae002eb267f69d91de0c83a5f4f349372"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the SDO index and subindex.  <a href="#gae002eb267f69d91de0c83a5f4f349372">More...</a><br /></td></tr>
<tr class="separator:gae002eb267f69d91de0c83a5f4f349372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5018a122570d50568b32211d79f00ff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gae5018a122570d50568b32211d79f00ff">ecrt_sdo_request_timeout</a> (<a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *req, uint32_t timeout)</td></tr>
<tr class="memdesc:gae5018a122570d50568b32211d79f00ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the timeout for an SDO request.  <a href="#gae5018a122570d50568b32211d79f00ff">More...</a><br /></td></tr>
<tr class="separator:gae5018a122570d50568b32211d79f00ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70b875084a32b81579bf83c960390967"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga70b875084a32b81579bf83c960390967">ecrt_sdo_request_data</a> (<a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *req)</td></tr>
<tr class="memdesc:ga70b875084a32b81579bf83c960390967"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to the SDO request's data.  <a href="#ga70b875084a32b81579bf83c960390967">More...</a><br /></td></tr>
<tr class="separator:ga70b875084a32b81579bf83c960390967"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8de1a948ed0cfa5a9478d2050c2560da"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga8de1a948ed0cfa5a9478d2050c2560da">ecrt_sdo_request_data_size</a> (const <a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *req)</td></tr>
<tr class="memdesc:ga8de1a948ed0cfa5a9478d2050c2560da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current SDO data size.  <a href="#ga8de1a948ed0cfa5a9478d2050c2560da">More...</a><br /></td></tr>
<tr class="separator:ga8de1a948ed0cfa5a9478d2050c2560da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78d910487f583e333cdf978b4f12c3c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga78d910487f583e333cdf978b4f12c3c1">ecrt_sdo_request_state</a> (const <a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *req)</td></tr>
<tr class="memdesc:ga78d910487f583e333cdf978b4f12c3c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current state of the SDO request.  <a href="#ga78d910487f583e333cdf978b4f12c3c1">More...</a><br /></td></tr>
<tr class="separator:ga78d910487f583e333cdf978b4f12c3c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf0e5a35aa54d971d75a6d00c148ffa83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaf0e5a35aa54d971d75a6d00c148ffa83">ecrt_sdo_request_write</a> (<a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *req)</td></tr>
<tr class="memdesc:gaf0e5a35aa54d971d75a6d00c148ffa83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule an SDO write operation.  <a href="#gaf0e5a35aa54d971d75a6d00c148ffa83">More...</a><br /></td></tr>
<tr class="separator:gaf0e5a35aa54d971d75a6d00c148ffa83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga883e43ca2b29e73ac5ec5dec214487b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga883e43ca2b29e73ac5ec5dec214487b2">ecrt_sdo_request_read</a> (<a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *req)</td></tr>
<tr class="memdesc:ga883e43ca2b29e73ac5ec5dec214487b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule an SDO read operation.  <a href="#ga883e43ca2b29e73ac5ec5dec214487b2">More...</a><br /></td></tr>
<tr class="separator:ga883e43ca2b29e73ac5ec5dec214487b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b19acf8409e13630e7525f571659744"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga0b19acf8409e13630e7525f571659744">ecrt_voe_handler_send_header</a> (<a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *voe, uint32_t vendor_id, uint16_t vendor_type)</td></tr>
<tr class="memdesc:ga0b19acf8409e13630e7525f571659744"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the VoE header for future send operations.  <a href="#ga0b19acf8409e13630e7525f571659744">More...</a><br /></td></tr>
<tr class="separator:ga0b19acf8409e13630e7525f571659744"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad5d4056c54c6189a6f5d16bebd46306"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaad5d4056c54c6189a6f5d16bebd46306">ecrt_voe_handler_received_header</a> (const <a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *voe, uint32_t *vendor_id, uint16_t *vendor_type)</td></tr>
<tr class="memdesc:gaad5d4056c54c6189a6f5d16bebd46306"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the header data of a received VoE message.  <a href="#gaad5d4056c54c6189a6f5d16bebd46306">More...</a><br /></td></tr>
<tr class="separator:gaad5d4056c54c6189a6f5d16bebd46306"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e08667772cb5ca889324d3a5c0d4b26"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga4e08667772cb5ca889324d3a5c0d4b26">ecrt_voe_handler_data</a> (<a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *voe)</td></tr>
<tr class="memdesc:ga4e08667772cb5ca889324d3a5c0d4b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to the VoE handler's data.  <a href="#ga4e08667772cb5ca889324d3a5c0d4b26">More...</a><br /></td></tr>
<tr class="separator:ga4e08667772cb5ca889324d3a5c0d4b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabc36254a5c0f0ff3aec0ead3d4ecc96"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaabc36254a5c0f0ff3aec0ead3d4ecc96">ecrt_voe_handler_data_size</a> (const <a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *voe)</td></tr>
<tr class="memdesc:gaabc36254a5c0f0ff3aec0ead3d4ecc96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current data size.  <a href="#gaabc36254a5c0f0ff3aec0ead3d4ecc96">More...</a><br /></td></tr>
<tr class="separator:gaabc36254a5c0f0ff3aec0ead3d4ecc96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bcfdf71d8d8632c26c07beb17374971"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga1bcfdf71d8d8632c26c07beb17374971">ecrt_voe_handler_write</a> (<a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *voe, size_t size)</td></tr>
<tr class="memdesc:ga1bcfdf71d8d8632c26c07beb17374971"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a VoE write operation.  <a href="#ga1bcfdf71d8d8632c26c07beb17374971">More...</a><br /></td></tr>
<tr class="separator:ga1bcfdf71d8d8632c26c07beb17374971"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga71bc42fb7cb1bd008303bb79df11312e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga71bc42fb7cb1bd008303bb79df11312e">ecrt_voe_handler_read</a> (<a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *voe)</td></tr>
<tr class="memdesc:ga71bc42fb7cb1bd008303bb79df11312e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a VoE read operation.  <a href="#ga71bc42fb7cb1bd008303bb79df11312e">More...</a><br /></td></tr>
<tr class="separator:ga71bc42fb7cb1bd008303bb79df11312e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0bc75bb57e280a55b0e9d31c0f06f71"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gad0bc75bb57e280a55b0e9d31c0f06f71">ecrt_voe_handler_read_nosync</a> (<a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *voe)</td></tr>
<tr class="memdesc:gad0bc75bb57e280a55b0e9d31c0f06f71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a VoE read operation without querying the sync manager status.  <a href="#gad0bc75bb57e280a55b0e9d31c0f06f71">More...</a><br /></td></tr>
<tr class="separator:gad0bc75bb57e280a55b0e9d31c0f06f71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26c45ec21428d91704016494cb5a38ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga26c45ec21428d91704016494cb5a38ae">ecrt_voe_handler_execute</a> (<a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *voe)</td></tr>
<tr class="memdesc:ga26c45ec21428d91704016494cb5a38ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Execute the handler.  <a href="#ga26c45ec21428d91704016494cb5a38ae">More...</a><br /></td></tr>
<tr class="separator:ga26c45ec21428d91704016494cb5a38ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecfbefc3410396bd5ca5f14c489ea838"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gaecfbefc3410396bd5ca5f14c489ea838">ecrt_reg_request_data</a> (<a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *req)</td></tr>
<tr class="memdesc:gaecfbefc3410396bd5ca5f14c489ea838"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to the register request's data.  <a href="#gaecfbefc3410396bd5ca5f14c489ea838">More...</a><br /></td></tr>
<tr class="separator:gaecfbefc3410396bd5ca5f14c489ea838"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac7fc3bbec83497a78b7b075e41eb26e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gac7fc3bbec83497a78b7b075e41eb26e4">ecrt_reg_request_state</a> (const <a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *req)</td></tr>
<tr class="memdesc:gac7fc3bbec83497a78b7b075e41eb26e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current state of the register request.  <a href="#gac7fc3bbec83497a78b7b075e41eb26e4">More...</a><br /></td></tr>
<tr class="separator:gac7fc3bbec83497a78b7b075e41eb26e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3c12de18886ffb7aaeb7ac364a7f2034"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#ga3c12de18886ffb7aaeb7ac364a7f2034">ecrt_reg_request_write</a> (<a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *req, uint16_t address, size_t size)</td></tr>
<tr class="memdesc:ga3c12de18886ffb7aaeb7ac364a7f2034"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule an register write operation.  <a href="#ga3c12de18886ffb7aaeb7ac364a7f2034">More...</a><br /></td></tr>
<tr class="separator:ga3c12de18886ffb7aaeb7ac364a7f2034"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad8da153df44d98812c897c56cabe1e84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ApplicationInterface.html#gad8da153df44d98812c897c56cabe1e84">ecrt_reg_request_read</a> (<a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *req, uint16_t address, size_t size)</td></tr>
<tr class="memdesc:gad8da153df44d98812c897c56cabe1e84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a register read operation.  <a href="#gad8da153df44d98812c897c56cabe1e84">More...</a><br /></td></tr>
<tr class="separator:gad8da153df44d98812c897c56cabe1e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>EtherCAT interface for realtime applications. </p>
<p>This interface is designed for realtime modules that want to use EtherCAT. There are functions to request a master, to map process data, to communicate with slaves via CoE and to configure and activate the bus.</p>
<p>Changes in version 1.5.2:</p>
<ul>
<li>Added redundancy_active flag to <a class="el" href="structec__domain__state__t.html" title="Domain state. ">ec_domain_state_t</a>.</li>
<li>Added <a class="el" href="group__ApplicationInterface.html#ga90c4d1a88ecc1f3a49ba73dad4efdb14" title="Reads the current state of a redundant link. ">ecrt_master_link_state()</a> method and <a class="el" href="structec__master__link__state__t.html" title="Redundant link state. ">ec_master_link_state_t</a> to query the state of a redundant link.</li>
<li>Added the EC_HAVE_REDUNDANCY define, to check, if the interface contains redundancy features.</li>
<li>Added <a class="el" href="group__ApplicationInterface.html#gae002eb267f69d91de0c83a5f4f349372" title="Set the SDO index and subindex. ">ecrt_sdo_request_index()</a> to change SDO index and subindex after handler creation.</li>
<li>Added interface for retrieving CoE emergency messages, i. e. <a class="el" href="group__ApplicationInterface.html#gae2540078423afe6763c5b7a2554f30bf" title="Set the size of the CoE emergency ring buffer. ">ecrt_slave_config_emerg_size()</a>, <a class="el" href="group__ApplicationInterface.html#ga6b58a60d15afe8bab546a766653f227f" title="Read and remove one record from the CoE emergency ring buffer. ">ecrt_slave_config_emerg_pop()</a>, <a class="el" href="group__ApplicationInterface.html#gad61c6ab7adf19f18953f34c8132c30a7" title="Clears CoE emergency ring buffer and the overrun counter. ">ecrt_slave_config_emerg_clear()</a>, <a class="el" href="group__ApplicationInterface.html#gad47666902ef543c1233a8fafcaa9e321" title="Read the number of CoE emergency overruns. ">ecrt_slave_config_emerg_overruns()</a> and the defines EC_HAVE_EMERGENCY and EC_COE_EMERGENCY_MSG_SIZE.</li>
<li>Added interface for direct EtherCAT register access: Added data type ec_reg_request_t and methods <a class="el" href="group__ApplicationInterface.html#ga1805e57c39e7bb12840c5e2589021dbe" title="Create a register request to exchange EtherCAT register contents during realtime operation. ">ecrt_slave_config_create_reg_request()</a>, <a class="el" href="group__ApplicationInterface.html#gaecfbefc3410396bd5ca5f14c489ea838" title="Access to the register request&#39;s data. ">ecrt_reg_request_data()</a>, <a class="el" href="group__ApplicationInterface.html#gac7fc3bbec83497a78b7b075e41eb26e4" title="Get the current state of the register request. ">ecrt_reg_request_state()</a>, <a class="el" href="group__ApplicationInterface.html#ga3c12de18886ffb7aaeb7ac364a7f2034" title="Schedule an register write operation. ">ecrt_reg_request_write()</a>, <a class="el" href="group__ApplicationInterface.html#gad8da153df44d98812c897c56cabe1e84" title="Schedule a register read operation. ">ecrt_reg_request_read()</a> and the feature flag EC_HAVE_REG_ACCESS.</li>
<li>Added method to select the reference clock, <a class="el" href="group__ApplicationInterface.html#ga31983aeee279fc5acaf5f7a0bb403160" title="Selects the reference clock for distributed clocks. ">ecrt_master_select_reference_clock()</a> and the feature flag EC_HAVE_SELECT_REF_CLOCK to check, if the method is available.</li>
<li>Added method to get the reference clock time, <a class="el" href="group__ApplicationInterface.html#gaefb582f13442ef8b770fd308b8de949c" title="Get the lower 32 bit of the reference clock system time. ">ecrt_master_reference_clock_time()</a> and the feature flag EC_HAVE_REF_CLOCK_TIME to have the possibility to synchronize the master clock to the reference clock.</li>
<li>Changed the data types of the shift times in <a class="el" href="group__ApplicationInterface.html#ga05858fdb5052dfb1161a81d2f8beb553" title="Configure distributed clocks. ">ecrt_slave_config_dc()</a> to int32_t to correctly display negative shift times.</li>
<li>Added <a class="el" href="group__ApplicationInterface.html#ga757fd3d421f1ded8ee310c4698afb8ba" title="Registers a PDO entry using its position. ">ecrt_slave_config_reg_pdo_entry_pos()</a> and the feature flag EC_HAVE_REG_BY_POS for registering PDO entries with non-unique indices via their positions in the mapping.</li>
</ul>
<p>Changes in version 1.5:</p>
<ul>
<li>Added the distributed clocks feature and the respective method <a class="el" href="group__ApplicationInterface.html#ga05858fdb5052dfb1161a81d2f8beb553" title="Configure distributed clocks. ">ecrt_slave_config_dc()</a> to configure a slave for cyclic operation, and <a class="el" href="group__ApplicationInterface.html#ga567ccc15f09d5722fd6269f297b72a58" title="Sets the application time. ">ecrt_master_application_time()</a>, <a class="el" href="group__ApplicationInterface.html#gabdc6735565f209d8ab8473f34617a526" title="Queues the DC reference clock drift compensation datagram for sending. ">ecrt_master_sync_reference_clock()</a> and <a class="el" href="group__ApplicationInterface.html#gadb8b8f705803689e789f022b01eb8deb" title="Queues the DC clock drift compensation datagram for sending. ">ecrt_master_sync_slave_clocks()</a> for offset and drift compensation. The <a class="el" href="group__ApplicationInterface.html#gaeffbc7820c2e642aee02c92729d4411c" title="Timeval to nanoseconds conversion. ">EC_TIMEVAL2NANO()</a> macro can be used for epoch time conversion, while the <a class="el" href="group__ApplicationInterface.html#ga3df6e34876cbad6e3e2a4d51ec1ba812" title="Queues the DC synchrony monitoring datagram for sending. ">ecrt_master_sync_monitor_queue()</a> and <a class="el" href="group__ApplicationInterface.html#ga0a0b4bef9b058f9a7752878f7c07cdf3" title="Processes the DC synchrony monitoring datagram. ">ecrt_master_sync_monitor_process()</a> methods can be used to monitor the synchrony.</li>
<li>Improved the callback mechanism. <a class="el" href="group__ApplicationInterface.html#ga644db1b4181bfe2943bb8fa81bd027f7" title="Sets the locking callbacks. ">ecrt_master_callbacks()</a> now takes two callback functions for sending and receiving datagrams. <a class="el" href="group__ApplicationInterface.html#ga62360cb642f555269d64df1111f6c771" title="Sends non-application datagrams. ">ecrt_master_send_ext()</a> is used to execute the sending of non-application datagrams.</li>
<li>Added watchdog configuration (method <a class="el" href="group__ApplicationInterface.html#gaba67c3e575110297f9fdcffad573d367" title="Configure a slave&#39;s watchdog times. ">ecrt_slave_config_watchdog()</a>, <a class="el" href="group__ApplicationInterface.html#gaa31bcc2beed6a1f62ec495337c239177" title="Watchdog mode for sync manager configuration. ">ec_watchdog_mode_t</a>, <em>watchdog_mode</em> parameter in <a class="el" href="structec__sync__info__t.html" title="Sync manager configuration information. ">ec_sync_info_t</a> and <a class="el" href="group__ApplicationInterface.html#ga4ac6eae111bdbf1d4cd09fa2f965a887" title="Configure a sync manager. ">ecrt_slave_config_sync_manager()</a>).</li>
<li>Added <a class="el" href="group__ApplicationInterface.html#ga4231948c36c707fd5bc95e2e813ff7af" title="Add configuration data for a complete SDO. ">ecrt_slave_config_complete_sdo()</a> method to download an SDO during configuration via CompleteAccess.</li>
<li>Added <a class="el" href="group__ApplicationInterface.html#ga46b3fe78742ddf929b624103432ec4dd" title="Deactivates the master. ">ecrt_master_deactivate()</a> to remove the bus configuration.</li>
<li>Added ecrt_open_master() and ecrt_master_reserve() separation for userspace.</li>
<li>Added bus information interface (methods <a class="el" href="group__ApplicationInterface.html#gaefdb3b2d46b945fa6ebd65c4c5f16b8b" title="Obtains master information. ">ecrt_master()</a>, <a class="el" href="group__ApplicationInterface.html#ga8a1a9398f7c1e17e4da8243fe03a7a80" title="Obtains slave information. ">ecrt_master_get_slave()</a>, ecrt_master_get_sync_manager(), ecrt_master_get_pdo() and ecrt_master_get_pdo_entry()) to get information about the currently connected slaves and the PDO entries provided.</li>
<li>Added <a class="el" href="group__ApplicationInterface.html#ga52ec1296b7c6c21e86b906ef4edc6208" title="Executes an SDO download request to write data to a slave. ">ecrt_master_sdo_download()</a>, <a class="el" href="group__ApplicationInterface.html#ga357ce803ce5e7a8e59f14bf3eaf11439" title="Executes an SDO download request to write data to a slave via complete access. ">ecrt_master_sdo_download_complete()</a> and <a class="el" href="group__ApplicationInterface.html#ga8d6d538e803530ac104c9bf2d37a24c4" title="Executes an SDO upload request to read data from a slave. ">ecrt_master_sdo_upload()</a> methods to let an application transfer SDOs before activating the master.</li>
<li>Changed the meaning of the negative return values of <a class="el" href="group__ApplicationInterface.html#ga44fe6bd549328c34ca4ed6893765206f" title="Registers a PDO entry for process data exchange in a domain. ">ecrt_slave_config_reg_pdo_entry()</a> and ecrt_slave_config_sdo*().</li>
<li>Implemented the Vendor-specific over EtherCAT mailbox protocol. See <a class="el" href="group__ApplicationInterface.html#ga6341627f6bf764312dd6e8c3140e9be1" title="Create an VoE handler to exchange vendor-specific data during realtime operation. ...">ecrt_slave_config_create_voe_handler()</a>.</li>
<li>Renamed ec_sdo_request_state_t to <a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df" title="Request state. ">ec_request_state_t</a>, because it is also used by VoE handlers.</li>
<li>Removed 'const' from argument of <a class="el" href="group__ApplicationInterface.html#ga78d910487f583e333cdf978b4f12c3c1" title="Get the current state of the SDO request. ">ecrt_sdo_request_state()</a>, because the userspace library has to modify object internals.</li>
<li>Added 64-bit data access macros.</li>
<li>Added <a class="el" href="group__ApplicationInterface.html#gaa3d42e8188c64eaf794e8dc91a61b60b" title="Add an SoE IDN configuration. ">ecrt_slave_config_idn()</a> method for storing SoE IDN configurations, and <a class="el" href="group__ApplicationInterface.html#gacd875ea0739ebb3524269070d9357c4b" title="Executes an SoE read request. ">ecrt_master_read_idn()</a> and <a class="el" href="group__ApplicationInterface.html#ga5ddd58b7a66b774b6037edbc50c73293" title="Executes an SoE write request. ">ecrt_master_write_idn()</a> to read/write IDNs ad-hoc via the user-space library.</li>
<li>Added <a class="el" href="group__ApplicationInterface.html#gab6455adf50e074c51894113adb49e00c" title="Retry configuring slaves. ">ecrt_master_reset()</a> to initiate retrying to configure slaves. </li>
</ul>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gac7ba64ff07a3e390c4290f4ffb4b8512"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac7ba64ff07a3e390c4290f4ffb4b8512">&#9670;&nbsp;</a></span>EC_HAVE_REDUNDANCY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_HAVE_REDUNDANCY</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Defined, if the redundancy features are available. </p>
<p>I. e. if the <em>redundancy_active</em> flag in <a class="el" href="structec__domain__state__t.html" title="Domain state. ">ec_domain_state_t</a> and the <a class="el" href="group__ApplicationInterface.html#ga90c4d1a88ecc1f3a49ba73dad4efdb14" title="Reads the current state of a redundant link. ">ecrt_master_link_state()</a> method are available. </p>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00162">162</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga496883570b15e30ceb5005a5834f8577"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga496883570b15e30ceb5005a5834f8577">&#9670;&nbsp;</a></span>EC_HAVE_EMERGENCY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_HAVE_EMERGENCY</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Defined, if the CoE emergency ring feature is available. </p>
<p>I. e. if the ecrt_slave_config_emerg_*() methods are available. </p>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00168">168</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gaf1c03a9ed2467c2301e311854dc93718"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf1c03a9ed2467c2301e311854dc93718">&#9670;&nbsp;</a></span>EC_HAVE_REG_ACCESS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_HAVE_REG_ACCESS</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Defined, if the register access interface is available. </p>
<p>I. e. if the methods <a class="el" href="group__ApplicationInterface.html#ga1805e57c39e7bb12840c5e2589021dbe" title="Create a register request to exchange EtherCAT register contents during realtime operation. ">ecrt_slave_config_create_reg_request()</a>, <a class="el" href="group__ApplicationInterface.html#gaecfbefc3410396bd5ca5f14c489ea838" title="Access to the register request&#39;s data. ">ecrt_reg_request_data()</a>, <a class="el" href="group__ApplicationInterface.html#gac7fc3bbec83497a78b7b075e41eb26e4" title="Get the current state of the register request. ">ecrt_reg_request_state()</a>, <a class="el" href="group__ApplicationInterface.html#ga3c12de18886ffb7aaeb7ac364a7f2034" title="Schedule an register write operation. ">ecrt_reg_request_write()</a> and <a class="el" href="group__ApplicationInterface.html#gad8da153df44d98812c897c56cabe1e84" title="Schedule a register read operation. ">ecrt_reg_request_read()</a> are available. </p>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00176">176</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gab2c6b7c61e0a7e07671003c1954d92ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab2c6b7c61e0a7e07671003c1954d92ee">&#9670;&nbsp;</a></span>EC_END</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_END&#160;&#160;&#160;~0U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>End of list marker. </p>
<p>This can be used with <a class="el" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559" title="Specify a complete PDO configuration. ">ecrt_slave_config_pdos()</a>. </p>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00196">196</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gad1811128dd257dd7f5bb7a11724a638e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad1811128dd257dd7f5bb7a11724a638e">&#9670;&nbsp;</a></span>EC_MAX_STRING_LENGTH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_MAX_STRING_LENGTH&#160;&#160;&#160;64</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum string length. </p>
<p>Used in <a class="el" href="structec__slave__info__t.html" title="Slave information. ">ec_slave_info_t</a>. </p>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00206">206</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga1982934cef716e45eefeba57c9d6e3ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1982934cef716e45eefeba57c9d6e3ff">&#9670;&nbsp;</a></span>EC_MAX_PORTS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_MAX_PORTS&#160;&#160;&#160;4</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum number of slave ports. </p>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00209">209</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gaeffbc7820c2e642aee02c92729d4411c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeffbc7820c2e642aee02c92729d4411c">&#9670;&nbsp;</a></span>EC_TIMEVAL2NANO</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_TIMEVAL2NANO</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">TV</td><td>)</td>
          <td>&#160;&#160;&#160;(((TV).tv_sec - 946684800ULL) * 1000000000ULL + (TV).tv_usec * 1000ULL)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Timeval to nanoseconds conversion. </p>
<p>This macro converts a Unix epoch time to EtherCAT DC time.</p>
<dl class="section see"><dt>See also</dt><dd>void <a class="el" href="group__ApplicationInterface.html#ga567ccc15f09d5722fd6269f297b72a58" title="Sets the application time. ">ecrt_master_application_time()</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TV</td><td>struct timeval containing epoch time. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00219">219</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga1395ca6654aae4222bc89b73e6ebfa66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1395ca6654aae4222bc89b73e6ebfa66">&#9670;&nbsp;</a></span>EC_COE_EMERGENCY_MSG_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_COE_EMERGENCY_MSG_SIZE&#160;&#160;&#160;8</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Size of a CoE emergency message in byte. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#ga6b58a60d15afe8bab546a766653f227f" title="Read and remove one record from the CoE emergency ring buffer. ">ecrt_slave_config_emerg_pop()</a>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00226">226</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga45bf3a61139e93c31b442b25d958e8a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga45bf3a61139e93c31b442b25d958e8a0">&#9670;&nbsp;</a></span>EC_READ_BIT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_BIT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">POS&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((*((uint8_t *) (DATA)) &gt;&gt; (POS)) &amp; 0x01)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a certain bit of an EtherCAT data byte. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">POS</td><td>bit position </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02042">2042</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gad34ea4baad01f48e2fe114624c994ae2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad34ea4baad01f48e2fe114624c994ae2">&#9670;&nbsp;</a></span>EC_WRITE_BIT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_BIT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">POS, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div><div class="line">        if (VAL) *((uint8_t *) (DATA)) |=  (1 &lt;&lt; (POS)); \</div><div class="line">        else     *((uint8_t *) (DATA)) &amp;= ~(1 &lt;&lt; (POS)); \</div><div class="line">    } <span class="keywordflow">while</span> (0)</div></div><!-- fragment -->
<p>Write a certain bit of an EtherCAT data byte. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">POS</td><td>bit position </td></tr>
    <tr><td class="paramname">VAL</td><td>new bit value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02050">2050</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gabfd606064b98475fc6cbe52aea6b5133"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabfd606064b98475fc6cbe52aea6b5133">&#9670;&nbsp;</a></span>EC_READ_U8</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_U8</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA</td><td>)</td>
          <td>&#160;&#160;&#160;((uint8_t) *((uint8_t *) (DATA)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read an 8-bit unsigned value from EtherCAT data. </p>
<dl class="section return"><dt>Returns</dt><dd>EtherCAT data value </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02119">2119</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga9fe458e3d365a499db3a93e72164a2f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9fe458e3d365a499db3a93e72164a2f6">&#9670;&nbsp;</a></span>EC_READ_S8</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_S8</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA</td><td>)</td>
          <td>&#160;&#160;&#160;((int8_t) *((uint8_t *) (DATA)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read an 8-bit signed value from EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EtherCAT data value </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02127">2127</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gaa78148947379983986940d1980ac3db1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa78148947379983986940d1980ac3db1">&#9670;&nbsp;</a></span>EC_READ_U16</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_U16</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA</td><td>)</td>
          <td>&#160;&#160;&#160;((uint16_t) le16_to_cpup((void *) (DATA)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a 16-bit unsigned value from EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EtherCAT data value </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02135">2135</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga390de258c11aac1db1dba2444a69ddc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga390de258c11aac1db1dba2444a69ddc3">&#9670;&nbsp;</a></span>EC_READ_S16</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_S16</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA</td><td>)</td>
          <td>&#160;&#160;&#160;((int16_t) le16_to_cpup((void *) (DATA)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a 16-bit signed value from EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EtherCAT data value </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02143">2143</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gaca608a732bed6f11ddfdf073e8c3a80d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaca608a732bed6f11ddfdf073e8c3a80d">&#9670;&nbsp;</a></span>EC_READ_U32</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_U32</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA</td><td>)</td>
          <td>&#160;&#160;&#160;((uint32_t) le32_to_cpup((void *) (DATA)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a 32-bit unsigned value from EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EtherCAT data value </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02151">2151</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga0ba3560f47cd32bcb5842a4a21f1457d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0ba3560f47cd32bcb5842a4a21f1457d">&#9670;&nbsp;</a></span>EC_READ_S32</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_S32</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA</td><td>)</td>
          <td>&#160;&#160;&#160;((int32_t) le32_to_cpup((void *) (DATA)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a 32-bit signed value from EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EtherCAT data value </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02159">2159</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gab91748e9aa6003a8f814169c90e90182"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab91748e9aa6003a8f814169c90e90182">&#9670;&nbsp;</a></span>EC_READ_U64</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_U64</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA</td><td>)</td>
          <td>&#160;&#160;&#160;((uint64_t) le64_to_cpup((void *) (DATA)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a 64-bit unsigned value from EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EtherCAT data value </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02167">2167</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gac19a77ff73490a105e72552c357136ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac19a77ff73490a105e72552c357136ed">&#9670;&nbsp;</a></span>EC_READ_S64</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_READ_S64</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA</td><td>)</td>
          <td>&#160;&#160;&#160;((int64_t) le64_to_cpup((void *) (DATA)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a 64-bit signed value from EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EtherCAT data value </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02175">2175</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga42e7df5376954bc1cf1dde11fbf17387"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga42e7df5376954bc1cf1dde11fbf17387">&#9670;&nbsp;</a></span>EC_WRITE_U8</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_U8</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div><div class="line">        *((uint8_t *)(DATA)) = ((uint8_t) (VAL)); \</div><div class="line">    } <span class="keywordflow">while</span> (0)</div></div><!-- fragment -->
<p>Write an 8-bit unsigned value to EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">VAL</td><td>new value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02187">2187</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga9bae1ebdd914c235c1178fe8eee19aa7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9bae1ebdd914c235c1178fe8eee19aa7">&#9670;&nbsp;</a></span>EC_WRITE_S8</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_S8</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#ga42e7df5376954bc1cf1dde11fbf17387">EC_WRITE_U8</a>(DATA, VAL)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write an 8-bit signed value to EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">VAL</td><td>new value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02197">2197</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gace219530ddd83f5f3f54d5b329b94a3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace219530ddd83f5f3f54d5b329b94a3d">&#9670;&nbsp;</a></span>EC_WRITE_U16</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_U16</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div><div class="line">        *((uint16_t *) (DATA)) = cpu_to_le16((uint16_t) (VAL)); \</div><div class="line">    } <span class="keywordflow">while</span> (0)</div></div><!-- fragment -->
<p>Write a 16-bit unsigned value to EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">VAL</td><td>new value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02204">2204</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gaef851d843ec4ba3fd6109185d56946fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaef851d843ec4ba3fd6109185d56946fc">&#9670;&nbsp;</a></span>EC_WRITE_S16</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_S16</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#gace219530ddd83f5f3f54d5b329b94a3d">EC_WRITE_U16</a>(DATA, VAL)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a 16-bit signed value to EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">VAL</td><td>new value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02214">2214</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga9558cb79cc4015da0a551704649d1e80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9558cb79cc4015da0a551704649d1e80">&#9670;&nbsp;</a></span>EC_WRITE_U32</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_U32</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div><div class="line">        *((uint32_t *) (DATA)) = cpu_to_le32((uint32_t) (VAL)); \</div><div class="line">    } <span class="keywordflow">while</span> (0)</div></div><!-- fragment -->
<p>Write a 32-bit unsigned value to EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">VAL</td><td>new value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02221">2221</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga233dd5af48da2bc1b1d1374851fac018"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga233dd5af48da2bc1b1d1374851fac018">&#9670;&nbsp;</a></span>EC_WRITE_S32</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_S32</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#ga9558cb79cc4015da0a551704649d1e80">EC_WRITE_U32</a>(DATA, VAL)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a 32-bit signed value to EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">VAL</td><td>new value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02231">2231</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gac2186e4bce70f3ba61c76fe5d1ddd2a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac2186e4bce70f3ba61c76fe5d1ddd2a6">&#9670;&nbsp;</a></span>EC_WRITE_U64</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_U64</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div><div class="line">        *((uint64_t *) (DATA)) = cpu_to_le64((uint64_t) (VAL)); \</div><div class="line">    } <span class="keywordflow">while</span> (0)</div></div><!-- fragment -->
<p>Write a 64-bit unsigned value to EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">VAL</td><td>new value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02238">2238</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga228f4a47ddfa63828ea55837b30173bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga228f4a47ddfa63828ea55837b30173bb">&#9670;&nbsp;</a></span>EC_WRITE_S64</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define EC_WRITE_S64</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DATA, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VAL&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__ApplicationInterface.html#gac2186e4bce70f3ba61c76fe5d1ddd2a6">EC_WRITE_U64</a>(DATA, VAL)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a 64-bit signed value to EtherCAT data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DATA</td><td>EtherCAT data pointer </td></tr>
    <tr><td class="paramname">VAL</td><td>new value </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l02248">2248</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga60ec31b46fcf7994c511359402c64baa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga60ec31b46fcf7994c511359402c64baa">&#9670;&nbsp;</a></span>ec_master_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structec__master.html">ec_master</a> <a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structec__master.html" title="EtherCAT master. ">ec_master</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00233">233</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga81f6717d9d4157df53b863e5ee3b04a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga81f6717d9d4157df53b863e5ee3b04a4">&#9670;&nbsp;</a></span>ec_slave_config_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structec__slave__config.html">ec_slave_config</a> <a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structec__slave__config.html" title="EtherCAT slave configuration. ">ec_slave_config</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00236">236</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga80023c0c77cb39ae1cd70c9d8e5269fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga80023c0c77cb39ae1cd70c9d8e5269fc">&#9670;&nbsp;</a></span>ec_domain_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structec__domain.html">ec_domain</a> <a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structec__domain.html" title="EtherCAT domain. ">ec_domain</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00239">239</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga557aaf4c32cb56eee5e76fb6063628db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga557aaf4c32cb56eee5e76fb6063628db">&#9670;&nbsp;</a></span>ec_sdo_request_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structec__sdo__request.html">ec_sdo_request</a> <a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structec__sdo__request.html" title="CANopen SDO request. ">ec_sdo_request</a>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00242">242</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga498dd422118de7095af5287ef9a6eed1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga498dd422118de7095af5287ef9a6eed1">&#9670;&nbsp;</a></span>ec_voe_handler_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structec__voe__handler.html">ec_voe_handler</a> <a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structec__voe__handler.html" title="Vendor specific over EtherCAT handler. ">ec_voe_handler</a>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00245">245</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga85a829c5133104f0d21f9e6684201d79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga85a829c5133104f0d21f9e6684201d79">&#9670;&nbsp;</a></span>ec_reg_request_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structec__reg__request.html">ec_reg_request</a> <a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structec__sdo__request.html" title="CANopen SDO request. ">ec_sdo_request</a>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00248">248</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga15640cfae27efdf73d687ea4f9a03338"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga15640cfae27efdf73d687ea4f9a03338">&#9670;&nbsp;</a></span>ec_slave_port_desc_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__ApplicationInterface.html#ga15640cfae27efdf73d687ea4f9a03338">ec_slave_port_desc_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>EtherCAT slave port descriptor. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga15640cfae27efdf73d687ea4f9a03338a714b71ad4e085ce97f819853779e6c82"></a>EC_PORT_NOT_IMPLEMENTED&#160;</td><td class="fielddoc"><p>Port is not implemented. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga15640cfae27efdf73d687ea4f9a03338a696e2f14e40660b267334b44aa529bb6"></a>EC_PORT_NOT_CONFIGURED&#160;</td><td class="fielddoc"><p>Port is not configured. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga15640cfae27efdf73d687ea4f9a03338ac06e10ab39eb8c7585e6b3e85aa901b2"></a>EC_PORT_EBUS&#160;</td><td class="fielddoc"><p>Port is an E-Bus. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga15640cfae27efdf73d687ea4f9a03338a0a5db996018465752d5f6d5bc1caad39"></a>EC_PORT_MII&#160;</td><td class="fielddoc"><p>Port is a MII. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00339">339</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga00daf142097ba5eb8b58b996a8a730af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga00daf142097ba5eb8b58b996a8a730af">&#9670;&nbsp;</a></span>ec_wc_state_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__ApplicationInterface.html#ga00daf142097ba5eb8b58b996a8a730af">ec_wc_state_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Domain working counter interpretation. </p>
<p>This is used in <a class="el" href="structec__domain__state__t.html" title="Domain state. ">ec_domain_state_t</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga00daf142097ba5eb8b58b996a8a730afa8dff19321b05e9aed5ffc41c25ea3de2"></a>EC_WC_ZERO&#160;</td><td class="fielddoc"><p>No registered process data were exchanged. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga00daf142097ba5eb8b58b996a8a730afaef084e88705396b87feea4e9dca38c22"></a>EC_WC_INCOMPLETE&#160;</td><td class="fielddoc"><p>Some of the registered process data were exchanged. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga00daf142097ba5eb8b58b996a8a730afa46aaefd30aadeede4109b23491d0077f"></a>EC_WC_COMPLETE&#160;</td><td class="fielddoc"><p>All registered process data were exchanged. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00394">394</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga703c4e47384b3601e7605d6d910aaba1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga703c4e47384b3601e7605d6d910aaba1">&#9670;&nbsp;</a></span>ec_direction_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__ApplicationInterface.html#ga703c4e47384b3601e7605d6d910aaba1">ec_direction_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Direction type for PDO assignment functions. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga703c4e47384b3601e7605d6d910aaba1a1d65420e76eb63b731b1148054c40054"></a>EC_DIR_INVALID&#160;</td><td class="fielddoc"><p>Invalid direction. </p>
<p>Do not use this value. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga703c4e47384b3601e7605d6d910aaba1aebf26f1d5c09cf002af5b09d9cb59b78"></a>EC_DIR_OUTPUT&#160;</td><td class="fielddoc"><p>Values written by the master. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga703c4e47384b3601e7605d6d910aaba1a6b3c6b53010076d846724fec434512e4"></a>EC_DIR_INPUT&#160;</td><td class="fielddoc"><p>Values read by the master. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga703c4e47384b3601e7605d6d910aaba1a4e496ac3681435d672c73b2198b5ca4d"></a>EC_DIR_COUNT&#160;</td><td class="fielddoc"><p>Number of directions. </p>
<p>For internal use only. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00417">417</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gaa31bcc2beed6a1f62ec495337c239177"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa31bcc2beed6a1f62ec495337c239177">&#9670;&nbsp;</a></span>ec_watchdog_mode_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__ApplicationInterface.html#gaa31bcc2beed6a1f62ec495337c239177">ec_watchdog_mode_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Watchdog mode for sync manager configuration. </p>
<p>Used to specify, if a sync manager's watchdog is to be enabled. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa31bcc2beed6a1f62ec495337c239177a067dbac72731bbc99525c11777552703"></a>EC_WD_DEFAULT&#160;</td><td class="fielddoc"><p>Use the default setting of the sync manager. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa31bcc2beed6a1f62ec495337c239177aee16c13a5ec3c6105a41a1d4c562e82d"></a>EC_WD_ENABLE&#160;</td><td class="fielddoc"><p>Enable the watchdog. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa31bcc2beed6a1f62ec495337c239177adfee5b587c2fac3791f4b13ccd64645a"></a>EC_WD_DISABLE&#160;</td><td class="fielddoc"><p>Disable the watchdog. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00430">430</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="gae94149f829f04960c62d63764a7779df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae94149f829f04960c62d63764a7779df">&#9670;&nbsp;</a></span>ec_request_state_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Request state. </p>
<p>This is used as return type for <a class="el" href="group__ApplicationInterface.html#ga78d910487f583e333cdf978b4f12c3c1" title="Get the current state of the SDO request. ">ecrt_sdo_request_state()</a> and ecrt_voe_handler_state(). </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggae94149f829f04960c62d63764a7779dfa8a9e6590d04b31b12b03d7071d106cf5"></a>EC_REQUEST_UNUSED&#160;</td><td class="fielddoc"><p>Not requested. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae94149f829f04960c62d63764a7779dfad031578ebd61309cf3e0f618968fd3a2"></a>EC_REQUEST_BUSY&#160;</td><td class="fielddoc"><p>Request is being processed. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae94149f829f04960c62d63764a7779dfab2473480381319839a822fc009aa0db5"></a>EC_REQUEST_SUCCESS&#160;</td><td class="fielddoc"><p>Request was processed successfully. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae94149f829f04960c62d63764a7779dfa870ae0f25d0f780ebcaac16c920f00e3"></a>EC_REQUEST_ERROR&#160;</td><td class="fielddoc"><p>Request processing failed. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00517">517</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<a id="ga18c064146090e45d36c05876c546caea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga18c064146090e45d36c05876c546caea">&#9670;&nbsp;</a></span>ec_al_state_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__ApplicationInterface.html#ga18c064146090e45d36c05876c546caea">ec_al_state_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Application-layer state. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga18c064146090e45d36c05876c546caeaa1e8639024a180fdc380559b8f7a02b4f"></a>EC_AL_STATE_INIT&#160;</td><td class="fielddoc"><p>Init. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga18c064146090e45d36c05876c546caeaaf31a3511a6004d7909a71911a289681f"></a>EC_AL_STATE_PREOP&#160;</td><td class="fielddoc"><p>Pre-operational. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga18c064146090e45d36c05876c546caeaafb41d7398780a3f09ba2c19d624b2668"></a>EC_AL_STATE_SAFEOP&#160;</td><td class="fielddoc"><p>Safe-operational. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga18c064146090e45d36c05876c546caeaa4f746cb4e141c28b8aeb9c6cfe78177e"></a>EC_AL_STATE_OP&#160;</td><td class="fielddoc"><p>Operational. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="ecrt_8h_source.html#l00528">528</a> of file <a class="el" href="ecrt_8h_source.html">ecrt.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga242aedc8a03b7c4d0121bc670b68bf5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga242aedc8a03b7c4d0121bc670b68bf5b">&#9670;&nbsp;</a></span>ecrt_version_magic()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int ecrt_version_magic </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the version magic of the realtime interface. </p>
<dl class="section return"><dt>Returns</dt><dd>Value of <a class="el" href="group__ApplicationInterface.html#ga9da1b3be0320bb6fd2fd7a87874e6324" title="EtherCAT realtime interface version word. ">ECRT_VERSION_MAGIC()</a> at EtherCAT master compile time. </dd></dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00640">640</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="gafb85534b6fcba3fa1fab6c81173b2ed1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb85534b6fcba3fa1fab6c81173b2ed1">&#9670;&nbsp;</a></span>ecrt_request_master()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a>* ecrt_request_master </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>master_index</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Requests an EtherCAT master for realtime operation. </p>
<p>Before an application can access an EtherCAT master, it has to reserve one for exclusive use.</p>
<p>In userspace, this is a convenience function for ecrt_open_master() and ecrt_master_reserve().</p>
<p>This function has to be the first function an application has to call to use EtherCAT. The function takes the index of the master as its argument. The first master has index 0, the n-th master has index n - 1. The number of masters has to be specified when loading the master module.</p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the reserved master, otherwise <em>NULL</em>. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master_index</td><td>Index of the master to request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00606">606</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="ga64219721098ec5069eab27f1923de9ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga64219721098ec5069eab27f1923de9ea">&#9670;&nbsp;</a></span>ecrt_release_master()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_release_master </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Releases a requested EtherCAT master. </p>
<p>After use, a master it has to be released to make it available for other applications.</p>
<p>This method frees all created data structures. It should not be called in realtime context.</p>
<p>If the master was activated, <a class="el" href="group__ApplicationInterface.html#ga46b3fe78742ddf929b624103432ec4dd" title="Deactivates the master. ">ecrt_master_deactivate()</a> is called internally. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="module_8c_source.html#l00614">614</a> of file <a class="el" href="module_8c_source.html">module.c</a>.</p>

</div>
</div>
<a id="ga644db1b4181bfe2943bb8fa81bd027f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga644db1b4181bfe2943bb8fa81bd027f7">&#9670;&nbsp;</a></span>ecrt_master_callbacks()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_callbacks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(void *)&#160;</td>
          <td class="paramname"><em>send_cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(void *)&#160;</td>
          <td class="paramname"><em>receive_cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cb_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the locking callbacks. </p>
<p>For concurrent master access, i. e. if other instances than the application want to send and receive datagrams on the bus, the application has to provide a callback mechanism. This method takes two function pointers as its parameters. Asynchronous master access (like EoE processing) is only possible if the callbacks have been set.</p>
<p>The task of the send callback (<em>send_cb</em>) is to decide, if the bus is currently accessible and whether or not to call the <a class="el" href="group__ApplicationInterface.html#ga62360cb642f555269d64df1111f6c771" title="Sends non-application datagrams. ">ecrt_master_send_ext()</a> method.</p>
<p>The task of the receive callback (<em>receive_cb</em>) is to decide, if a call to <a class="el" href="group__ApplicationInterface.html#ga9544e79db51c59a96af6493025cdc933" title="Fetches received frames from the hardware and processes the datagrams. ">ecrt_master_receive()</a> is allowed and to execute it respectively.</p>
<dl class="section attention"><dt>Attention</dt><dd>This method has to be called before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master </td></tr>
    <tr><td class="paramname">send_cb</td><td>Datagram sending callback. </td></tr>
    <tr><td class="paramname">receive_cb</td><td>Receive callback. </td></tr>
    <tr><td class="paramname">cb_data</td><td>Arbitrary pointer passed to the callback functions. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02677">2677</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gae4ede07f05b211667078ab2b2396da6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae4ede07f05b211667078ab2b2396da6e">&#9670;&nbsp;</a></span>ecrt_master_create_domain()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a>* ecrt_master_create_domain </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a new process data domain. </p>
<p>For process data exchange, at least one process data domain is needed. This method creates a new process data domain and returns a pointer to the new domain object. This object can be used for registering PDOs and exchanging them in cyclic operation.</p>
<p>This method allocates memory and should be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the new domain on success, else NULL. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02254">2254</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gaa190a5d3aa2a72b8950ef93aa7baab0b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa190a5d3aa2a72b8950ef93aa7baab0b">&#9670;&nbsp;</a></span>ecrt_master_slave_config()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a>* ecrt_master_slave_config </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>alias</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>vendor_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>product_code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Obtains a slave configuration. </p>
<p>Creates a slave configuration object for the given <em>alias</em> and <em>position</em> tuple and returns it. If a configuration with the same <em>alias</em> and <em>position</em> already exists, it will be re-used. In the latter case, the given vendor ID and product code are compared to the stored ones. On mismatch, an error message is raised and the function returns <em>NULL</em>.</p>
<p>Slaves are addressed with the <em>alias</em> and <em>position</em> parameters.</p><ul>
<li>If <em>alias</em> is zero, <em>position</em> is interpreted as the desired slave's ring position.</li>
<li>If <em>alias</em> is non-zero, it matches a slave with the given alias. In this case, <em>position</em> is interpreted as ring offset, starting from the aliased slave, so a position of zero means the aliased slave itself and a positive value matches the n-th slave behind the aliased one.</li>
</ul>
<p>If the slave with the given address is found during the bus configuration, its vendor ID and product code are matched against the given value. On mismatch, the slave is not configured and an error message is raised.</p>
<p>If different slave configurations are pointing to the same slave during bus configuration, a warning is raised and only the first configuration is applied.</p>
<p>This method allocates memory and should be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">&gt;0</td><td>Pointer to the slave configuration structure. </td></tr>
    <tr><td class="paramname">NULL</td><td>in the error case. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master </td></tr>
    <tr><td class="paramname">alias</td><td>Slave alias. </td></tr>
    <tr><td class="paramname">position</td><td>Slave position. </td></tr>
    <tr><td class="paramname">vendor_id</td><td>Expected vendor ID. </td></tr>
    <tr><td class="paramname">product_code</td><td>Expected product code. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02577">2577</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga31983aeee279fc5acaf5f7a0bb403160"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga31983aeee279fc5acaf5f7a0bb403160">&#9670;&nbsp;</a></span>ecrt_master_select_reference_clock()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_select_reference_clock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selects the reference clock for distributed clocks. </p>
<p>If this method is not called for a certain master, or if the slave configuration pointer is NULL, then the first slave with DC functionality will provide the reference clock.</p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, otherwise negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">sc</td><td>Slave config of the slave to use as the reference slave (or NULL). </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02588">2588</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gaefdb3b2d46b945fa6ebd65c4c5f16b8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaefdb3b2d46b945fa6ebd65c4c5f16b8b">&#9670;&nbsp;</a></span>ecrt_master()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__master__info__t.html">ec_master_info_t</a> *&#160;</td>
          <td class="paramname"><em>master_info</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Obtains master information. </p>
<p>No memory is allocated on the heap in this function.</p>
<dl class="section attention"><dt>Attention</dt><dd>The pointer to this structure must point to a valid variable.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 in case of success, else &lt; 0 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master </td></tr>
    <tr><td class="paramname">master_info</td><td>Structure that will output the information </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02608">2608</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga8a1a9398f7c1e17e4da8243fe03a7a80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8a1a9398f7c1e17e4da8243fe03a7a80">&#9670;&nbsp;</a></span>ecrt_master_get_slave()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_get_slave </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>slave_position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__slave__info__t.html">ec_slave_info_t</a> *&#160;</td>
          <td class="paramname"><em>slave_info</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Obtains slave information. </p>
<p>Tries to find the slave with the given ring position. The obtained information is stored in a structure. No memory is allocated on the heap in this function.</p>
<dl class="section attention"><dt>Attention</dt><dd>The pointer to this structure must point to a valid variable.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 in case of success, else &lt; 0 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master </td></tr>
    <tr><td class="paramname">slave_position</td><td>Slave position. </td></tr>
    <tr><td class="paramname">slave_info</td><td>Structure that will output the information </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02622">2622</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga52ec1296b7c6c21e86b906ef4edc6208"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga52ec1296b7c6c21e86b906ef4edc6208">&#9670;&nbsp;</a></span>ecrt_master_sdo_download()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_sdo_download </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>slave_position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>abort_code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Executes an SDO download request to write data to a slave. </p>
<p>This request is processed by the master state machine. This method blocks, until the request has been processed and may not be called in realtime context.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">slave_position</td><td>Slave position. </td></tr>
    <tr><td class="paramname">index</td><td>Index of the SDO. </td></tr>
    <tr><td class="paramname">subindex</td><td>Subindex of the SDO. </td></tr>
    <tr><td class="paramname">data</td><td>Data buffer to download. </td></tr>
    <tr><td class="paramname">data_size</td><td>Size of the data buffer. </td></tr>
    <tr><td class="paramname">abort_code</td><td>Abort code of the SDO download. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02800">2800</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga357ce803ce5e7a8e59f14bf3eaf11439"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga357ce803ce5e7a8e59f14bf3eaf11439">&#9670;&nbsp;</a></span>ecrt_master_sdo_download_complete()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_sdo_download_complete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>slave_position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>abort_code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Executes an SDO download request to write data to a slave via complete access. </p>
<p>This request is processed by the master state machine. This method blocks, until the request has been processed and may not be called in realtime context.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">slave_position</td><td>Slave position. </td></tr>
    <tr><td class="paramname">index</td><td>Index of the SDO. </td></tr>
    <tr><td class="paramname">data</td><td>Data buffer to download. </td></tr>
    <tr><td class="paramname">data_size</td><td>Size of the data buffer. </td></tr>
    <tr><td class="paramname">abort_code</td><td>Abort code of the SDO download. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02884">2884</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga8d6d538e803530ac104c9bf2d37a24c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d6d538e803530ac104c9bf2d37a24c4">&#9670;&nbsp;</a></span>ecrt_master_sdo_upload()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_sdo_upload </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>slave_position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>target_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>result_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>abort_code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Executes an SDO upload request to read data from a slave. </p>
<p>This request is processed by the master state machine. This method blocks, until the request has been processed and may not be called in realtime context.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">slave_position</td><td>Slave position. </td></tr>
    <tr><td class="paramname">index</td><td>Index of the SDO. </td></tr>
    <tr><td class="paramname">subindex</td><td>Subindex of the SDO. </td></tr>
    <tr><td class="paramname">target</td><td>Target buffer for the upload. </td></tr>
    <tr><td class="paramname">target_size</td><td>Size of the target buffer. </td></tr>
    <tr><td class="paramname">result_size</td><td>Uploaded data size. </td></tr>
    <tr><td class="paramname">abort_code</td><td>Abort code of the SDO upload. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02970">2970</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga5ddd58b7a66b774b6037edbc50c73293"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5ddd58b7a66b774b6037edbc50c73293">&#9670;&nbsp;</a></span>ecrt_master_write_idn()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_write_idn </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>slave_position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>drive_no</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>idn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>error_code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Executes an SoE write request. </p>
<p>Starts writing an IDN and blocks until the request was processed, or an error occurred.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">slave_position</td><td>Slave position. </td></tr>
    <tr><td class="paramname">drive_no</td><td>Drive number. </td></tr>
    <tr><td class="paramname">idn</td><td>SoE IDN (see <a class="el" href="group__ApplicationInterface.html#gaa3d42e8188c64eaf794e8dc91a61b60b" title="Add an SoE IDN configuration. ">ecrt_slave_config_idn()</a>). </td></tr>
    <tr><td class="paramname">data</td><td>Pointer to data to write. </td></tr>
    <tr><td class="paramname">data_size</td><td>Size of data to write. </td></tr>
    <tr><td class="paramname">error_code</td><td>Pointer to variable, where an SoE error code can be stored. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l03053">3053</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gacd875ea0739ebb3524269070d9357c4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd875ea0739ebb3524269070d9357c4b">&#9670;&nbsp;</a></span>ecrt_master_read_idn()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_read_idn </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>slave_position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>drive_no</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>idn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>target_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>result_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>error_code</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Executes an SoE read request. </p>
<p>Starts reading an IDN and blocks until the request was processed, or an error occurred.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">slave_position</td><td>Slave position. </td></tr>
    <tr><td class="paramname">drive_no</td><td>Drive number. </td></tr>
    <tr><td class="paramname">idn</td><td>SoE IDN (see <a class="el" href="group__ApplicationInterface.html#gaa3d42e8188c64eaf794e8dc91a61b60b" title="Add an SoE IDN configuration. ">ecrt_slave_config_idn()</a>). </td></tr>
    <tr><td class="paramname">target</td><td>Pointer to memory where the read data can be stored. </td></tr>
    <tr><td class="paramname">target_size</td><td>Size of the memory <em>target</em> points to. </td></tr>
    <tr><td class="paramname">result_size</td><td>Actual size of the received data. </td></tr>
    <tr><td class="paramname">error_code</td><td>Pointer to variable, where an SoE error code can be stored. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l03129">3129</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gaa44bdeca52f4e821838f4291637103ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa44bdeca52f4e821838f4291637103ac">&#9670;&nbsp;</a></span>ecrt_master_activate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_activate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Finishes the configuration phase and prepares for cyclic operation. </p>
<p>This function tells the master that the configuration phase is finished and the realtime operation will begin. The function allocates internal memory for the domains and calculates the logical FMMU addresses for domain members. It tells the master state machine that the bus configuration is now to be applied.</p>
<dl class="section attention"><dt>Attention</dt><dd>After this function has been called, the realtime application is in charge of cyclically calling <a class="el" href="group__ApplicationInterface.html#ga453f787866ee66afb98130cf4723762d" title="Sends all datagrams in the queue. ">ecrt_master_send()</a> and <a class="el" href="group__ApplicationInterface.html#ga9544e79db51c59a96af6493025cdc933" title="Fetches received frames from the hardware and processes the datagrams. ">ecrt_master_receive()</a> to ensure bus communication. Before calling this function, the master thread is responsible for that, so these functions may not be called! The method itself allocates memory and should not be called in realtime context.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 in case of success, else &lt; 0 </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02264">2264</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga46b3fe78742ddf929b624103432ec4dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga46b3fe78742ddf929b624103432ec4dd">&#9670;&nbsp;</a></span>ecrt_master_deactivate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_deactivate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Deactivates the master. </p>
<p>Removes the bus configuration. All objects created by <a class="el" href="group__ApplicationInterface.html#gae4ede07f05b211667078ab2b2396da6e" title="Creates a new process data domain. ">ecrt_master_create_domain()</a>, <a class="el" href="group__ApplicationInterface.html#gaa190a5d3aa2a72b8950ef93aa7baab0b" title="Obtains a slave configuration. ">ecrt_master_slave_config()</a>, <a class="el" href="group__ApplicationInterface.html#ga701738b03629d552c15c2cdd9b7b99c2" title="Returns the domain&#39;s process data. ">ecrt_domain_data()</a> <a class="el" href="group__ApplicationInterface.html#ga14aa167c0d4afd84b0fbada417a204f1" title="Create an SDO request to exchange SDOs during realtime operation. ">ecrt_slave_config_create_sdo_request()</a> and <a class="el" href="group__ApplicationInterface.html#ga6341627f6bf764312dd6e8c3140e9be1" title="Create an VoE handler to exchange vendor-specific data during realtime operation. ...">ecrt_slave_config_create_voe_handler()</a> are freed, so pointers to them become invalid.</p>
<p>This method should not be called in realtime context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02338">2338</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gae316a920dba8c28e14138b4bf394c230"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae316a920dba8c28e14138b4bf394c230">&#9670;&nbsp;</a></span>ecrt_master_set_send_interval()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_set_send_interval </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>send_interval</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set interval between calls to <a class="el" href="group__ApplicationInterface.html#ga453f787866ee66afb98130cf4723762d" title="Sends all datagrams in the queue. ">ecrt_master_send()</a>. </p>
<p>This information helps the master to decide, how much data can be appended to a frame by the master state machine. When the master is configured with &ndash;enable-hrtimers, this is used to calculate the scheduling of the master thread.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>on success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">send_interval</td><td>Send interval in us </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga453f787866ee66afb98130cf4723762d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga453f787866ee66afb98130cf4723762d">&#9670;&nbsp;</a></span>ecrt_master_send()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sends all datagrams in the queue. </p>
<p>This method takes all datagrams, that have been queued for transmission, puts them into frames, and passes them to the Ethernet device for sending.</p>
<p>Has to be called cyclically by the application after <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a> has returned. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02409">2409</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga9544e79db51c59a96af6493025cdc933"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9544e79db51c59a96af6493025cdc933">&#9670;&nbsp;</a></span>ecrt_master_receive()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_receive </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Fetches received frames from the hardware and processes the datagrams. </p>
<p>Queries the network device for received frames by calling the interrupt service routine. Extracts received datagrams and dispatches the results to the datagram objects in the queue. Received datagrams, and the ones that timed out, will be marked, and dequeued.</p>
<p>Has to be called cyclically by the realtime application after <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a> has returned. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02453">2453</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga62360cb642f555269d64df1111f6c771"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62360cb642f555269d64df1111f6c771">&#9670;&nbsp;</a></span>ecrt_master_send_ext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_send_ext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sends non-application datagrams. </p>
<p>This method has to be called in the send callback function passed via <a class="el" href="group__ApplicationInterface.html#ga644db1b4181bfe2943bb8fa81bd027f7" title="Sets the locking callbacks. ">ecrt_master_callbacks()</a> to allow the sending of non-application datagrams. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02502">2502</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga9f623ede71e87dd0e9d6ab87086f0d4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f623ede71e87dd0e9d6ab87086f0d4f">&#9670;&nbsp;</a></span>ecrt_master_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_state </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__master__state__t.html">ec_master_state_t</a> *&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads the current master state. </p>
<p>Stores the master state information in the given <em>state</em> structure.</p>
<p>This method returns a global state. For the link-specific states in a redundant bus topology, use the <a class="el" href="group__ApplicationInterface.html#ga90c4d1a88ecc1f3a49ba73dad4efdb14" title="Reads the current state of a redundant link. ">ecrt_master_link_state()</a> method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">state</td><td>Structure to store the information. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02691">2691</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga90c4d1a88ecc1f3a49ba73dad4efdb14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga90c4d1a88ecc1f3a49ba73dad4efdb14">&#9670;&nbsp;</a></span>ecrt_master_link_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_link_state </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>dev_idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__master__link__state__t.html">ec_master_link_state_t</a> *&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads the current state of a redundant link. </p>
<p>Stores the link state information in the given <em>state</em> structure.</p>
<dl class="section return"><dt>Returns</dt><dd>Zero on success, otherwise negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">dev_idx</td><td>Index of the device (0 = main device, 1 = first backup device, ...). </td></tr>
    <tr><td class="paramname">state</td><td>Structure to store the information. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02714">2714</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga567ccc15f09d5722fd6269f297b72a58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga567ccc15f09d5722fd6269f297b72a58">&#9670;&nbsp;</a></span>ecrt_master_application_time()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_application_time </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>app_time</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the application time. </p>
<p>The master has to know the application's time when operating slaves with distributed clocks. The time is not incremented by the master itself, so this method has to be called cyclically.</p>
<dl class="section attention"><dt>Attention</dt><dd>The first call of this method is used to calculate the phase delay for the slaves' SYNC0/1 interrupts. Either the method has to be called during the realtime cycle <em>only</em>, or the first time submitted must be in-phase with the realtime cycle. Otherwise synchronisation problems can occur.</dd></dl>
<p>The time is used when setting the slaves' <code>System Time Offset</code> and <code>Cyclic Operation Start Time</code> registers and when synchronizing the DC reference clock to the application time via <a class="el" href="group__ApplicationInterface.html#gabdc6735565f209d8ab8473f34617a526" title="Queues the DC reference clock drift compensation datagram for sending. ">ecrt_master_sync_reference_clock()</a>.</p>
<p>The time is defined as nanoseconds from 2000-01-01 00:00. Converting an epoch time can be done with the <a class="el" href="group__ApplicationInterface.html#gaeffbc7820c2e642aee02c92729d4411c" title="Timeval to nanoseconds conversion. ">EC_TIMEVAL2NANO()</a> macro. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">app_time</td><td>Application time. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02730">2730</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gabdc6735565f209d8ab8473f34617a526"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabdc6735565f209d8ab8473f34617a526">&#9670;&nbsp;</a></span>ecrt_master_sync_reference_clock()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_sync_reference_clock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Queues the DC reference clock drift compensation datagram for sending. </p>
<p>The reference clock will by synchronized to the application time provided by the last call off <a class="el" href="group__ApplicationInterface.html#ga567ccc15f09d5722fd6269f297b72a58" title="Sets the application time. ">ecrt_master_application_time()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02761">2761</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gadb8b8f705803689e789f022b01eb8deb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadb8b8f705803689e789f022b01eb8deb">&#9670;&nbsp;</a></span>ecrt_master_sync_slave_clocks()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_sync_slave_clocks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Queues the DC clock drift compensation datagram for sending. </p>
<p>All slave clocks synchronized to the reference clock. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02771">2771</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gaefb582f13442ef8b770fd308b8de949c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaefb582f13442ef8b770fd308b8de949c">&#9670;&nbsp;</a></span>ecrt_master_reference_clock_time()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_master_reference_clock_time </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>time</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the lower 32 bit of the reference clock system time. </p>
<p>This method can be used to synchronize the master to the reference clock.</p>
<p>The reference clock system time is queried via the <a class="el" href="group__ApplicationInterface.html#gadb8b8f705803689e789f022b01eb8deb" title="Queues the DC clock drift compensation datagram for sending. ">ecrt_master_sync_slave_clocks()</a> method, that reads the system time of the reference clock and writes it to the slave clocks (so be sure to call it cyclically to get valid data).</p>
<dl class="section attention"><dt>Attention</dt><dd>The returned time is the system time of the reference clock minus the transmission delay of the reference clock.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>success, system time was written into <em>time</em>. </td></tr>
    <tr><td class="paramname">-ENXIO</td><td>No reference clock found. </td></tr>
    <tr><td class="paramname">-EIO</td><td>Slave synchronization datagram was not received. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">time</td><td>Pointer to store the queried system time. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02742">2742</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga3df6e34876cbad6e3e2a4d51ec1ba812"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3df6e34876cbad6e3e2a4d51ec1ba812">&#9670;&nbsp;</a></span>ecrt_master_sync_monitor_queue()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_sync_monitor_queue </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Queues the DC synchrony monitoring datagram for sending. </p>
<p>The datagram broadcast-reads all "System time difference" registers (<em>0x092c</em>) to get an upper estimation of the DC synchrony. The result can be checked with the <a class="el" href="group__ApplicationInterface.html#ga0a0b4bef9b058f9a7752878f7c07cdf3" title="Processes the DC synchrony monitoring datagram. ">ecrt_master_sync_monitor_process()</a> method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02781">2781</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga0a0b4bef9b058f9a7752878f7c07cdf3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0a0b4bef9b058f9a7752878f7c07cdf3">&#9670;&nbsp;</a></span>ecrt_master_sync_monitor_process()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t ecrt_master_sync_monitor_process </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Processes the DC synchrony monitoring datagram. </p>
<p>If the sync monitoring datagram was sent before with <a class="el" href="group__ApplicationInterface.html#ga3df6e34876cbad6e3e2a4d51ec1ba812" title="Queues the DC synchrony monitoring datagram for sending. ">ecrt_master_sync_monitor_queue()</a>, the result can be queried with this method.</p>
<dl class="section return"><dt>Returns</dt><dd>Upper estimation of the maximum time difference in ns. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l02789">2789</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="gab6455adf50e074c51894113adb49e00c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab6455adf50e074c51894113adb49e00c">&#9670;&nbsp;</a></span>ecrt_master_reset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_master_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retry configuring slaves. </p>
<p>Via this method, the application can tell the master to bring all slaves to OP state. In general, this is not necessary, because it is automatically done by the master. But with special slaves, that can be reconfigured by the vendor during runtime, it can be useful. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="master_8c_source.html#l03213">3213</a> of file <a class="el" href="master_8c_source.html">master.c</a>.</p>

</div>
</div>
<a id="ga4ac6eae111bdbf1d4cd09fa2f965a887"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4ac6eae111bdbf1d4cd09fa2f965a887">&#9670;&nbsp;</a></span>ecrt_slave_config_sync_manager()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_sync_manager </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>sync_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga703c4e47384b3601e7605d6d910aaba1">ec_direction_t</a>&#160;</td>
          <td class="paramname"><em>direction</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#gaa31bcc2beed6a1f62ec495337c239177">ec_watchdog_mode_t</a>&#160;</td>
          <td class="paramname"><em>watchdog_mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure a sync manager. </p>
<p>Sets the direction of a sync manager. This overrides the direction bits from the default control register from SII.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>zero on success, else non-zero </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">sync_index</td><td>Sync manager index. Must be less than <a class="el" href="group__ApplicationInterface.html#gab737cd2955a397ebd0df13e9148cec9f" title="Maximum number of sync managers per slave. ">EC_MAX_SYNC_MANAGERS</a>. </td></tr>
    <tr><td class="paramname">direction</td><td>Input/Output. </td></tr>
    <tr><td class="paramname">watchdog_mode</td><td>Watchdog mode. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00524">524</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gaba67c3e575110297f9fdcffad573d367"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba67c3e575110297f9fdcffad573d367">&#9670;&nbsp;</a></span>ecrt_slave_config_watchdog()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_slave_config_watchdog </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>watchdog_divider</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>watchdog_intervals</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure a slave's watchdog times. </p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">watchdog_divider</td><td>Number of 40 ns intervals. Used as a base unit for all slave watchdogs. If set to zero, the value is not written, so the default is used. </td></tr>
    <tr><td class="paramname">watchdog_intervals</td><td>Number of base intervals for process data watchdog. If set to zero, the value is not written, so the default is used. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00551">551</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gaef2958fe19c088978857e7b91f692630"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaef2958fe19c088978857e7b91f692630">&#9670;&nbsp;</a></span>ecrt_slave_config_pdo_assign_add()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_pdo_assign_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>sync_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a PDO to a sync manager's PDO assignment. </p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559" title="Specify a complete PDO configuration. ">ecrt_slave_config_pdos()</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>zero on success, else non-zero </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">sync_index</td><td>Sync manager index. Must be less than <a class="el" href="group__ApplicationInterface.html#gab737cd2955a397ebd0df13e9148cec9f" title="Maximum number of sync managers per slave. ">EC_MAX_SYNC_MANAGERS</a>. </td></tr>
    <tr><td class="paramname">index</td><td>Index of the PDO to assign. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00563">563</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gafc2fb2a662bd8129dea5330e5e313b5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafc2fb2a662bd8129dea5330e5e313b5f">&#9670;&nbsp;</a></span>ecrt_slave_config_pdo_assign_clear()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_slave_config_pdo_assign_clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>sync_index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clear a sync manager's PDO assignment. </p>
<p>This can be called before assigning PDOs via <a class="el" href="group__ApplicationInterface.html#gaef2958fe19c088978857e7b91f692630" title="Add a PDO to a sync manager&#39;s PDO assignment. ">ecrt_slave_config_pdo_assign_add()</a>, to clear the default assignment of a sync manager.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559" title="Specify a complete PDO configuration. ">ecrt_slave_config_pdos()</a> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">sync_index</td><td>Sync manager index. Must be less than <a class="el" href="group__ApplicationInterface.html#gab737cd2955a397ebd0df13e9148cec9f" title="Maximum number of sync managers per slave. ">EC_MAX_SYNC_MANAGERS</a>. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00593">593</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga3a0f83e1c3e3edf978b3017f94cc375d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a0f83e1c3e3edf978b3017f94cc375d">&#9670;&nbsp;</a></span>ecrt_slave_config_pdo_mapping_add()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_pdo_mapping_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>pdo_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>entry_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>entry_subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>entry_bit_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a PDO entry to the given PDO's mapping. </p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559" title="Specify a complete PDO configuration. ">ecrt_slave_config_pdos()</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>zero on success, else non-zero </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">pdo_index</td><td>Index of the PDO. </td></tr>
    <tr><td class="paramname">entry_index</td><td>Index of the PDO entry to add to the PDO's mapping. </td></tr>
    <tr><td class="paramname">entry_subindex</td><td>Subindex of the PDO entry to add to the PDO's mapping. </td></tr>
    <tr><td class="paramname">entry_bit_length</td><td>Size of the PDO entry in bit. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00611">611</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga8496abee3bd32fec5ffd74bf4705cc53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8496abee3bd32fec5ffd74bf4705cc53">&#9670;&nbsp;</a></span>ecrt_slave_config_pdo_mapping_clear()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_slave_config_pdo_mapping_clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>pdo_index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clear the mapping of a given PDO. </p>
<p>This can be called before mapping PDO entries via <a class="el" href="group__ApplicationInterface.html#ga3a0f83e1c3e3edf978b3017f94cc375d" title="Add a PDO entry to the given PDO&#39;s mapping. ">ecrt_slave_config_pdo_mapping_add()</a>, to clear the default mapping.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559" title="Specify a complete PDO configuration. ">ecrt_slave_config_pdos()</a> </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">pdo_index</td><td>Index of the PDO. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00648">648</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga7bc2683699a5c0c551f0cfdc90c1a559"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7bc2683699a5c0c551f0cfdc90c1a559">&#9670;&nbsp;</a></span>ecrt_slave_config_pdos()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_pdos </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>n_syncs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structec__sync__info__t.html">ec_sync_info_t</a>&#160;</td>
          <td class="paramname"><em>syncs</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Specify a complete PDO configuration. </p>
<p>This function is a convenience wrapper for the functions <a class="el" href="group__ApplicationInterface.html#ga4ac6eae111bdbf1d4cd09fa2f965a887" title="Configure a sync manager. ">ecrt_slave_config_sync_manager()</a>, <a class="el" href="group__ApplicationInterface.html#gafc2fb2a662bd8129dea5330e5e313b5f" title="Clear a sync manager&#39;s PDO assignment. ">ecrt_slave_config_pdo_assign_clear()</a>, <a class="el" href="group__ApplicationInterface.html#gaef2958fe19c088978857e7b91f692630" title="Add a PDO to a sync manager&#39;s PDO assignment. ">ecrt_slave_config_pdo_assign_add()</a>, <a class="el" href="group__ApplicationInterface.html#ga8496abee3bd32fec5ffd74bf4705cc53" title="Clear the mapping of a given PDO. ">ecrt_slave_config_pdo_mapping_clear()</a> and <a class="el" href="group__ApplicationInterface.html#ga3a0f83e1c3e3edf978b3017f94cc375d" title="Add a PDO entry to the given PDO&#39;s mapping. ">ecrt_slave_config_pdo_mapping_add()</a>, that are better suitable for automatic code generation.</p>
<p>The following example shows, how to specify a complete configuration, including the PDO mappings. With this information, the master is able to reserve the complete process data, even if the slave is not present at configuration time:</p>
<div class="fragment"><div class="line"><a class="code" href="structec__pdo__entry__info__t.html">ec_pdo_entry_info_t</a> el3162_channel1[] = {</div><div class="line">    {0x3101, 1,  8}, <span class="comment">// status</span></div><div class="line">    {0x3101, 2, 16}  <span class="comment">// value</span></div><div class="line">};</div><div class="line"></div><div class="line"><a class="code" href="structec__pdo__entry__info__t.html">ec_pdo_entry_info_t</a> el3162_channel2[] = {</div><div class="line">    {0x3102, 1,  8}, <span class="comment">// status</span></div><div class="line">    {0x3102, 2, 16}  <span class="comment">// value</span></div><div class="line">};</div><div class="line"></div><div class="line"><a class="code" href="structec__pdo__info__t.html">ec_pdo_info_t</a> el3162_pdos[] = {</div><div class="line">    {0x1A00, 2, el3162_channel1},</div><div class="line">    {0x1A01, 2, el3162_channel2}</div><div class="line">};</div><div class="line"></div><div class="line"><a class="code" href="structec__sync__info__t.html">ec_sync_info_t</a> el3162_syncs[] = {</div><div class="line">    {2, <a class="code" href="group__ApplicationInterface.html#gga703c4e47384b3601e7605d6d910aaba1aebf26f1d5c09cf002af5b09d9cb59b78">EC_DIR_OUTPUT</a>},</div><div class="line">    {3, <a class="code" href="group__ApplicationInterface.html#gga703c4e47384b3601e7605d6d910aaba1a6b3c6b53010076d846724fec434512e4">EC_DIR_INPUT</a>, 2, el3162_pdos},</div><div class="line">    {0xff}</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559">ecrt_slave_config_pdos</a>(sc_ana_in, <a class="code" href="group__ApplicationInterface.html#gab2c6b7c61e0a7e07671003c1954d92ee">EC_END</a>, el3162_syncs)) {</div><div class="line">    <span class="comment">// handle error</span></div><div class="line">}</div></div><!-- fragment --><p>The next example shows, how to configure the PDO assignment only. The entries for each assigned PDO are taken from the PDO's default mapping. Please note, that PDO entry registration will fail, if the PDO configuration is left empty and the slave is offline.</p>
<div class="fragment"><div class="line"><a class="code" href="structec__pdo__info__t.html">ec_pdo_info_t</a> pdos[] = {</div><div class="line">    {0x1600}, <span class="comment">// Channel 1</span></div><div class="line">    {0x1601}  <span class="comment">// Channel 2</span></div><div class="line">};</div><div class="line"></div><div class="line"><a class="code" href="structec__sync__info__t.html">ec_sync_info_t</a> syncs[] = {</div><div class="line">    {3, <a class="code" href="group__ApplicationInterface.html#gga703c4e47384b3601e7605d6d910aaba1a6b3c6b53010076d846724fec434512e4">EC_DIR_INPUT</a>, 2, pdos},</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559">ecrt_slave_config_pdos</a>(slave_config_ana_in, 1, syncs)) {</div><div class="line">    <span class="comment">// handle error</span></div><div class="line">}</div></div><!-- fragment --><p>Processing of <em>syncs</em> will stop, if</p><ul>
<li>the number of processed items reaches <em>n_syncs</em>, or</li>
<li>the <em>index</em> member of an <a class="el" href="structec__sync__info__t.html" title="Sync manager configuration information. ">ec_sync_info_t</a> item is 0xff. In this case, <em>n_syncs</em> should set to a number greater than the number of list items; using EC_END is recommended.</li>
</ul>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>zero on success, else non-zero </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">n_syncs</td><td>Number of sync manager configurations in <em>syncs</em>. </td></tr>
    <tr><td class="paramname">syncs</td><td>Array of sync manager configurations. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00673">673</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga44fe6bd549328c34ca4ed6893765206f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga44fe6bd549328c34ca4ed6893765206f">&#9670;&nbsp;</a></span>ecrt_slave_config_reg_pdo_entry()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_reg_pdo_entry </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>entry_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>entry_subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>bit_position</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registers a PDO entry for process data exchange in a domain. </p>
<p>Searches the assigned PDOs for the given PDO entry. An error is raised, if the given entry is not mapped. Otherwise, the corresponding sync manager and FMMU configurations are provided for slave configuration and the respective sync manager's assigned PDOs are appended to the given domain, if not already done. The offset of the requested PDO entry's data inside the domain's process data is returned. Optionally, the PDO entry bit position (0-7) can be retrieved via the <em>bit_position</em> output parameter. This pointer may be <em>NULL</em>, in this case an error is raised if the PDO entry does not byte-align.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">&gt;=0</td><td>Success: Offset of the PDO entry's process data. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">entry_index</td><td>Index of the PDO entry to register. </td></tr>
    <tr><td class="paramname">entry_subindex</td><td>Subindex of the PDO entry to register. </td></tr>
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
    <tr><td class="paramname">bit_position</td><td>Optional address if bit addressing is desired </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00739">739</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga757fd3d421f1ded8ee310c4698afb8ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga757fd3d421f1ded8ee310c4698afb8ba">&#9670;&nbsp;</a></span>ecrt_slave_config_reg_pdo_entry_pos()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_reg_pdo_entry_pos </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>sync_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pdo_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>entry_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>bit_position</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registers a PDO entry using its position. </p>
<p>Similar to <a class="el" href="group__ApplicationInterface.html#ga44fe6bd549328c34ca4ed6893765206f" title="Registers a PDO entry for process data exchange in a domain. ">ecrt_slave_config_reg_pdo_entry()</a>, but not using PDO indices but offsets in the PDO mapping, because PDO entry indices may not be unique inside a slave's PDO mapping. An error is raised, if one of the given positions is out of range.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">&gt;=0</td><td>Success: Offset of the PDO entry's process data. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">sync_index</td><td>Sync manager index. </td></tr>
    <tr><td class="paramname">pdo_pos</td><td>Position of the PDO inside the SM. </td></tr>
    <tr><td class="paramname">entry_pos</td><td>Position of the entry inside the PDO. </td></tr>
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
    <tr><td class="paramname">bit_position</td><td>Optional address if bit addressing is desired </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00794">794</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga05858fdb5052dfb1161a81d2f8beb553"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga05858fdb5052dfb1161a81d2f8beb553">&#9670;&nbsp;</a></span>ecrt_slave_config_dc()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_slave_config_dc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>assign_activate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>sync0_cycle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>sync0_shift</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>sync1_cycle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>sync1_shift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure distributed clocks. </p>
<p>Sets the AssignActivate word and the cycle and shift times for the sync signals.</p>
<p>The AssignActivate word is vendor-specific and can be taken from the XML device description file (Device -&gt; Dc -&gt; AssignActivate). Set this to zero, if the slave shall be operated without distributed clocks (default).</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section attention"><dt>Attention</dt><dd>The <em>sync1_shift</em> time is ignored. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">assign_activate</td><td>AssignActivate word. </td></tr>
    <tr><td class="paramname">sync0_cycle</td><td>SYNC0 cycle time [ns]. </td></tr>
    <tr><td class="paramname">sync0_shift</td><td>SYNC0 shift time [ns]. </td></tr>
    <tr><td class="paramname">sync1_cycle</td><td>SYNC1 cycle time [ns]. </td></tr>
    <tr><td class="paramname">sync1_shift</td><td>SYNC1 shift time [ns]. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00859">859</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gacf5b3147d6fa082ed73417cf7aa4e240"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacf5b3147d6fa082ed73417cf7aa4e240">&#9670;&nbsp;</a></span>ecrt_slave_config_sdo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_sdo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add an SDO configuration. </p>
<p>An SDO configuration is stored in the slave configuration object and is downloaded to the slave whenever the slave is being configured by the master. This usually happens once on master activation, but can be repeated subsequently, for example after the slave's power supply failed.</p>
<dl class="section attention"><dt>Attention</dt><dd>The SDOs for PDO assignment (<code>0x1C10</code> - <code>0x1C2F</code>) and PDO mapping (<code>0x1600</code> - <code>0x17FF</code> and <code>0x1A00</code> - <code>0x1BFF</code>) should not be configured with this function, because they are part of the slave configuration done by the master. Please use <a class="el" href="group__ApplicationInterface.html#ga7bc2683699a5c0c551f0cfdc90c1a559" title="Specify a complete PDO configuration. ">ecrt_slave_config_pdos()</a> and friends instead.</dd></dl>
<p>This is the generic function for adding an SDO configuration. Please note that the this function does not do any endianness correction. If datatype-specific functions are needed (that automatically correct the endianness), have a look at <a class="el" href="group__ApplicationInterface.html#ga93e038f9065d20ea3fa5738c495f0ae5" title="Add a configuration value for an 8-bit SDO. ">ecrt_slave_config_sdo8()</a>, <a class="el" href="group__ApplicationInterface.html#gaacb7fefc226e3a3c0225c39d233d2fa8" title="Add a configuration value for a 16-bit SDO. ">ecrt_slave_config_sdo16()</a> and <a class="el" href="group__ApplicationInterface.html#ga0a87e59a5448389907652ddb2f5768fd" title="Add a configuration value for a 32-bit SDO. ">ecrt_slave_config_sdo32()</a>.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">index</td><td>Index of the SDO to configure. </td></tr>
    <tr><td class="paramname">subindex</td><td>Subindex of the SDO to configure. </td></tr>
    <tr><td class="paramname">data</td><td>Pointer to the data. </td></tr>
    <tr><td class="paramname">size</td><td>Size of the <em>data</em>. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00878">878</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga93e038f9065d20ea3fa5738c495f0ae5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93e038f9065d20ea3fa5738c495f0ae5">&#9670;&nbsp;</a></span>ecrt_slave_config_sdo8()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_sdo8 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>sdo_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>sdo_subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a configuration value for an 8-bit SDO. </p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#gacf5b3147d6fa082ed73417cf7aa4e240" title="Add an SDO configuration. ">ecrt_slave_config_sdo()</a>.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration </td></tr>
    <tr><td class="paramname">sdo_index</td><td>Index of the SDO to configure. </td></tr>
    <tr><td class="paramname">sdo_subindex</td><td>Subindex of the SDO to configure. </td></tr>
    <tr><td class="paramname">value</td><td>Value to set. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00918">918</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gaacb7fefc226e3a3c0225c39d233d2fa8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaacb7fefc226e3a3c0225c39d233d2fa8">&#9670;&nbsp;</a></span>ecrt_slave_config_sdo16()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_sdo16 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>sdo_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>sdo_subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a configuration value for a 16-bit SDO. </p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#gacf5b3147d6fa082ed73417cf7aa4e240" title="Add an SDO configuration. ">ecrt_slave_config_sdo()</a>.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration </td></tr>
    <tr><td class="paramname">sdo_index</td><td>Index of the SDO to configure. </td></tr>
    <tr><td class="paramname">sdo_subindex</td><td>Subindex of the SDO to configure. </td></tr>
    <tr><td class="paramname">value</td><td>Value to set. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00933">933</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga0a87e59a5448389907652ddb2f5768fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0a87e59a5448389907652ddb2f5768fd">&#9670;&nbsp;</a></span>ecrt_slave_config_sdo32()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_sdo32 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>sdo_index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>sdo_subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a configuration value for a 32-bit SDO. </p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#gacf5b3147d6fa082ed73417cf7aa4e240" title="Add an SDO configuration. ">ecrt_slave_config_sdo()</a>.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration </td></tr>
    <tr><td class="paramname">sdo_index</td><td>Index of the SDO to configure. </td></tr>
    <tr><td class="paramname">sdo_subindex</td><td>Subindex of the SDO to configure. </td></tr>
    <tr><td class="paramname">value</td><td>Value to set. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00948">948</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga4231948c36c707fd5bc95e2e813ff7af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4231948c36c707fd5bc95e2e813ff7af">&#9670;&nbsp;</a></span>ecrt_slave_config_complete_sdo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_complete_sdo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add configuration data for a complete SDO. </p>
<p>The SDO data are transferred via CompleteAccess. Data for the first subindex (0) have to be included.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#gacf5b3147d6fa082ed73417cf7aa4e240" title="Add an SDO configuration. ">ecrt_slave_config_sdo()</a>.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">index</td><td>Index of the SDO to configure. </td></tr>
    <tr><td class="paramname">data</td><td>Pointer to the data. </td></tr>
    <tr><td class="paramname">size</td><td>Size of the <em>data</em>. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l00963">963</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gae2540078423afe6763c5b7a2554f30bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae2540078423afe6763c5b7a2554f30bf">&#9670;&nbsp;</a></span>ecrt_slave_config_emerg_size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_emerg_size </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>elements</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the size of the CoE emergency ring buffer. </p>
<p>The initial size is zero, so all messages will be dropped. This method can be called even after master activation, but it will clear the ring buffer!</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, or negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">elements</td><td>Number of records of the CoE emergency ring. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01003">1003</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga6b58a60d15afe8bab546a766653f227f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6b58a60d15afe8bab546a766653f227f">&#9670;&nbsp;</a></span>ecrt_slave_config_emerg_pop()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_emerg_pop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>target</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read and remove one record from the CoE emergency ring buffer. </p>
<p>A record consists of 8 bytes:</p>
<p>Byte 0-1: Error code (little endian) Byte 2: Error register Byte 3-7: Data</p>
<dl class="section return"><dt>Returns</dt><dd>0 on success (record popped), or negative error code (i. e. -ENOENT, if ring is empty). </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">target</td><td>Pointer to target memory (at least EC_COE_EMERGENCY_MSG_SIZE bytes). </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01010">1010</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gad61c6ab7adf19f18953f34c8132c30a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad61c6ab7adf19f18953f34c8132c30a7">&#9670;&nbsp;</a></span>ecrt_slave_config_emerg_clear()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_emerg_clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clears CoE emergency ring buffer and the overrun counter. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success, or negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01017">1017</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gad47666902ef543c1233a8fafcaa9e321"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad47666902ef543c1233a8fafcaa9e321">&#9670;&nbsp;</a></span>ecrt_slave_config_emerg_overruns()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_emerg_overruns </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read the number of CoE emergency overruns. </p>
<p>The overrun counter will be incremented when a CoE emergency message could not be stored in the ring buffer and had to be dropped. Call <a class="el" href="group__ApplicationInterface.html#gad61c6ab7adf19f18953f34c8132c30a7" title="Clears CoE emergency ring buffer and the overrun counter. ">ecrt_slave_config_emerg_clear()</a> to reset the counter.</p>
<dl class="section return"><dt>Returns</dt><dd>Number of overruns since last clear, or negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01024">1024</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga14aa167c0d4afd84b0fbada417a204f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga14aa167c0d4afd84b0fbada417a204f1">&#9670;&nbsp;</a></span>ecrt_slave_config_create_sdo_request()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a>* ecrt_slave_config_create_sdo_request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>subindex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an SDO request to exchange SDOs during realtime operation. </p>
<p>The created SDO request object is freed automatically when the master is released.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>New SDO request, or NULL on error. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">index</td><td>SDO index. </td></tr>
    <tr><td class="paramname">subindex</td><td>SDO subindex. </td></tr>
    <tr><td class="paramname">size</td><td>Data size to reserve. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01073">1073</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga6341627f6bf764312dd6e8c3140e9be1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6341627f6bf764312dd6e8c3140e9be1">&#9670;&nbsp;</a></span>ecrt_slave_config_create_voe_handler()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a>* ecrt_slave_config_create_voe_handler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an VoE handler to exchange vendor-specific data during realtime operation. </p>
<p>The number of VoE handlers per slave configuration is not limited, but usually it is enough to create one for sending and one for receiving, if both can be done simultaneously.</p>
<p>The created VoE handler object is freed automatically when the master is released.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>New VoE handler, or NULL on error. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">size</td><td>Data size to reserve. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01158">1158</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga1805e57c39e7bb12840c5e2589021dbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1805e57c39e7bb12840c5e2589021dbe">&#9670;&nbsp;</a></span>ecrt_slave_config_create_reg_request()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a>* ecrt_slave_config_create_reg_request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a register request to exchange EtherCAT register contents during realtime operation. </p>
<p>This interface should not be used to take over master functionality, instead it is intended for debugging and monitoring reasons.</p>
<p>The created register request object is freed automatically when the master is released.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>New register request, or NULL on error. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">size</td><td>Data size to reserve. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01116">1116</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="ga6b99c8912ed48a4ddce3d9470083dee1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6b99c8912ed48a4ddce3d9470083dee1">&#9670;&nbsp;</a></span>ecrt_slave_config_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_slave_config_state </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__slave__config__state__t.html">ec_slave_config_state_t</a> *&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Outputs the state of the slave configuration. </p>
<p>Stores the state information in the given <em>state</em> structure. The state information is updated by the master state machine, so it may take a few cycles, until it changes.</p>
<dl class="section attention"><dt>Attention</dt><dd>If the state of process data exchange shall be monitored in realtime, <a class="el" href="group__ApplicationInterface.html#gaab8fdd6b9dc3f33d22800d8c517f864a" title="Reads the state of a domain. ">ecrt_domain_state()</a> should be used. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration </td></tr>
    <tr><td class="paramname">state</td><td>State object to write to. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01168">1168</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gaa3d42e8188c64eaf794e8dc91a61b60b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa3d42e8188c64eaf794e8dc91a61b60b">&#9670;&nbsp;</a></span>ecrt_slave_config_idn()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_slave_config_idn </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga81f6717d9d4157df53b863e5ee3b04a4">ec_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>sc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>drive_no</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>idn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga18c064146090e45d36c05876c546caea">ec_al_state_t</a>&#160;</td>
          <td class="paramname"><em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add an SoE IDN configuration. </p>
<p>A configuration for a Sercos-over-EtherCAT IDN is stored in the slave configuration object and is written to the slave whenever the slave is being configured by the master. This usually happens once on master activation, but can be repeated subsequently, for example after the slave's power supply failed.</p>
<p>The <em>idn</em> parameter can be separated into several sections:</p><ul>
<li>Bit 15: Standard data (0) or Product data (1)</li>
<li>Bit 14 - 12: Parameter set (0 - 7)</li>
<li>Bit 11 - 0: Data block number (0 - 4095)</li>
</ul>
<p>Please note that the this function does not do any endianness correction. Multi-byte data have to be passed in EtherCAT endianness (little-endian).</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Success. </td></tr>
    <tr><td class="paramname">&lt;0</td><td>Error code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sc</td><td>Slave configuration. </td></tr>
    <tr><td class="paramname">drive_no</td><td>Drive number. </td></tr>
    <tr><td class="paramname">idn</td><td>SoE IDN. </td></tr>
    <tr><td class="paramname">state</td><td>AL state in which to write the IDN (PREOP or SAFEOP). </td></tr>
    <tr><td class="paramname">data</td><td>Pointer to the data. </td></tr>
    <tr><td class="paramname">size</td><td>Size of the <em>data</em>. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="slave__config_8c_source.html#l01185">1185</a> of file <a class="el" href="slave__config_8c_source.html">slave_config.c</a>.</p>

</div>
</div>
<a id="gaa34bed589e356727aaf0bc7ceee0ed57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa34bed589e356727aaf0bc7ceee0ed57">&#9670;&nbsp;</a></span>ecrt_domain_reg_pdo_entry_list()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ecrt_domain_reg_pdo_entry_list </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structec__pdo__entry__reg__t.html">ec_pdo_entry_reg_t</a> *&#160;</td>
          <td class="paramname"><em>pdo_entry_regs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Registers a bunch of PDO entries for a domain. </p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__ApplicationInterface.html#ga44fe6bd549328c34ca4ed6893765206f" title="Registers a PDO entry for process data exchange in a domain. ">ecrt_slave_config_reg_pdo_entry()</a></dd></dl>
<dl class="section attention"><dt>Attention</dt><dd>The registration array has to be terminated with an empty structure, or one with the <em>index</em> field set to zero! </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, else non-zero. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
    <tr><td class="paramname">pdo_entry_regs</td><td>Array of PDO registrations. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="domain_8c_source.html#l00398">398</a> of file <a class="el" href="domain_8c_source.html">domain.c</a>.</p>

</div>
</div>
<a id="gadc492ba8af1b53bfec60748c441f7a10"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadc492ba8af1b53bfec60748c441f7a10">&#9670;&nbsp;</a></span>ecrt_domain_size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t ecrt_domain_size </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current size of the domain's process data. </p>
<dl class="section return"><dt>Returns</dt><dd>Size of the process data image, or a negative error code. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="domain_8c_source.html#l00427">427</a> of file <a class="el" href="domain_8c_source.html">domain.c</a>.</p>

</div>
</div>
<a id="gaafe96aea4c5babcfe433f41e0c84a165"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaafe96aea4c5babcfe433f41e0c84a165">&#9670;&nbsp;</a></span>ecrt_domain_external_memory()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_domain_external_memory </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>memory</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Provide external memory to store the domain's process data. </p>
<p>Call this after all PDO entries have been registered and before activating the master.</p>
<p>The size of the allocated memory must be at least <a class="el" href="group__ApplicationInterface.html#gadc492ba8af1b53bfec60748c441f7a10" title="Returns the current size of the domain&#39;s process data. ">ecrt_domain_size()</a>, after all PDO entries have been registered.</p>
<p>This method has to be called in non-realtime context before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
    <tr><td class="paramname">memory</td><td>Address of the memory to store the process data in. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="domain_8c_source.html#l00434">434</a> of file <a class="el" href="domain_8c_source.html">domain.c</a>.</p>

</div>
</div>
<a id="ga701738b03629d552c15c2cdd9b7b99c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga701738b03629d552c15c2cdd9b7b99c2">&#9670;&nbsp;</a></span>ecrt_domain_data()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ecrt_domain_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the domain's process data. </p>
<ul>
<li>In kernel context: If external memory was provided with <a class="el" href="group__ApplicationInterface.html#gaafe96aea4c5babcfe433f41e0c84a165" title="Provide external memory to store the domain&#39;s process data. ">ecrt_domain_external_memory()</a>, the returned pointer will contain the address of that memory. Otherwise it will point to the internally allocated memory. In the latter case, this method may not be called before <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a>.</li>
<li>In userspace context: This method has to be called after <a class="el" href="group__ApplicationInterface.html#gaa44bdeca52f4e821838f4291637103ac" title="Finishes the configuration phase and prepares for cyclic operation. ">ecrt_master_activate()</a> to get the mapped domain process data memory.</li>
</ul>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the process data memory. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="domain_8c_source.html#l00451">451</a> of file <a class="el" href="domain_8c_source.html">domain.c</a>.</p>

</div>
</div>
<a id="gace65c0f94caa798d1f5930c1317dfd5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace65c0f94caa798d1f5930c1317dfd5c">&#9670;&nbsp;</a></span>ecrt_domain_process()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_domain_process </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determines the states of the domain's datagrams. </p>
<p>Evaluates the working counters of the received datagrams and outputs statistics, if necessary. This must be called after <a class="el" href="group__ApplicationInterface.html#ga9544e79db51c59a96af6493025cdc933" title="Fetches received frames from the hardware and processes the datagrams. ">ecrt_master_receive()</a> is expected to receive the domain datagrams in order to make <a class="el" href="group__ApplicationInterface.html#gaab8fdd6b9dc3f33d22800d8c517f864a" title="Reads the state of a domain. ">ecrt_domain_state()</a> return the result of the last process data exchange. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="domain_8c_source.html#l00458">458</a> of file <a class="el" href="domain_8c_source.html">domain.c</a>.</p>

</div>
</div>
<a id="ga5367e6982fae333765231a2c50579a96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5367e6982fae333765231a2c50579a96">&#9670;&nbsp;</a></span>ecrt_domain_queue()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_domain_queue </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>(Re-)queues all domain datagrams in the master's datagram queue. </p>
<p>Call this function to mark the domain's datagrams for exchanging at the next call of <a class="el" href="group__ApplicationInterface.html#ga453f787866ee66afb98130cf4723762d" title="Sends all datagrams in the queue. ">ecrt_master_send()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="domain_8c_source.html#l00637">637</a> of file <a class="el" href="domain_8c_source.html">domain.c</a>.</p>

</div>
</div>
<a id="gaab8fdd6b9dc3f33d22800d8c517f864a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaab8fdd6b9dc3f33d22800d8c517f864a">&#9670;&nbsp;</a></span>ecrt_domain_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_domain_state </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga80023c0c77cb39ae1cd70c9d8e5269fc">ec_domain_t</a> *&#160;</td>
          <td class="paramname"><em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__domain__state__t.html">ec_domain_state_t</a> *&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads the state of a domain. </p>
<p>Stores the domain state in the given <em>state</em> structure.</p>
<p>Using this method, the process data exchange can be monitored in realtime. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">domain</td><td>Domain. </td></tr>
    <tr><td class="paramname">state</td><td>Pointer to a state object to store the information. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="domain_8c_source.html#l00667">667</a> of file <a class="el" href="domain_8c_source.html">domain.c</a>.</p>

</div>
</div>
<a id="gae002eb267f69d91de0c83a5f4f349372"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae002eb267f69d91de0c83a5f4f349372">&#9670;&nbsp;</a></span>ecrt_sdo_request_index()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_sdo_request_index </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>subindex</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the SDO index and subindex. </p>
<dl class="section attention"><dt>Attention</dt><dd>If the SDO index and/or subindex is changed while <a class="el" href="group__ApplicationInterface.html#ga78d910487f583e333cdf978b4f12c3c1" title="Get the current state of the SDO request. ">ecrt_sdo_request_state()</a> returns EC_REQUEST_BUSY, this may lead to unexpected results. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>SDO request. </td></tr>
    <tr><td class="paramname">index</td><td>SDO index. </td></tr>
    <tr><td class="paramname">subindex</td><td>SDO subindex. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="sdo__request_8c_source.html#l00187">187</a> of file <a class="el" href="sdo__request_8c_source.html">sdo_request.c</a>.</p>

</div>
</div>
<a id="gae5018a122570d50568b32211d79f00ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae5018a122570d50568b32211d79f00ff">&#9670;&nbsp;</a></span>ecrt_sdo_request_timeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_sdo_request_timeout </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the timeout for an SDO request. </p>
<p>If the request cannot be processed in the specified time, if will be marked as failed.</p>
<p>The timeout is permanently stored in the request object and is valid until the next call of this method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>SDO request. </td></tr>
    <tr><td class="paramname">timeout</td><td>Timeout in milliseconds. Zero means no timeout. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="sdo__request_8c_source.html#l00196">196</a> of file <a class="el" href="sdo__request_8c_source.html">sdo_request.c</a>.</p>

</div>
</div>
<a id="ga70b875084a32b81579bf83c960390967"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga70b875084a32b81579bf83c960390967">&#9670;&nbsp;</a></span>ecrt_sdo_request_data()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ecrt_sdo_request_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Access to the SDO request's data. </p>
<p>This function returns a pointer to the request's internal SDO data memory.</p>
<ul>
<li>After a read operation was successful, integer data can be evaluated using the EC_READ_*() macros as usual. Example: <div class="fragment"><div class="line">uint16_t value = <a class="code" href="group__ApplicationInterface.html#gaa78148947379983986940d1980ac3db1">EC_READ_U16</a>(<a class="code" href="group__ApplicationInterface.html#ga70b875084a32b81579bf83c960390967">ecrt_sdo_request_data</a>(sdo)));</div></div><!-- fragment --></li>
<li>If a write operation shall be triggered, the data have to be written to the internal memory. Use the EC_WRITE_*() macros, if you are writing integer data. Be sure, that the data fit into the memory. The memory size is a parameter of <a class="el" href="group__ApplicationInterface.html#ga14aa167c0d4afd84b0fbada417a204f1" title="Create an SDO request to exchange SDOs during realtime operation. ">ecrt_slave_config_create_sdo_request()</a>. <div class="fragment"><div class="line"><a class="code" href="group__ApplicationInterface.html#gace219530ddd83f5f3f54d5b329b94a3d">EC_WRITE_U16</a>(<a class="code" href="group__ApplicationInterface.html#ga70b875084a32b81579bf83c960390967">ecrt_sdo_request_data</a>(sdo), 0xFFFF);</div></div><!-- fragment --></li>
</ul>
<dl class="section attention"><dt>Attention</dt><dd>The return value can be invalid during a read operation, because the internal SDO data memory could be re-allocated if the read SDO data do not fit inside.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the internal SDO data memory. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>SDO request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="sdo__request_8c_source.html#l00203">203</a> of file <a class="el" href="sdo__request_8c_source.html">sdo_request.c</a>.</p>

</div>
</div>
<a id="ga8de1a948ed0cfa5a9478d2050c2560da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8de1a948ed0cfa5a9478d2050c2560da">&#9670;&nbsp;</a></span>ecrt_sdo_request_data_size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t ecrt_sdo_request_data_size </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current SDO data size. </p>
<p>When the SDO request is created, the data size is set to the size of the reserved memory. After a read operation the size is set to the size of the read data. The size is not modified in any other situation.</p>
<dl class="section return"><dt>Returns</dt><dd>SDO data size in bytes. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>SDO request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="sdo__request_8c_source.html#l00210">210</a> of file <a class="el" href="sdo__request_8c_source.html">sdo_request.c</a>.</p>

</div>
</div>
<a id="ga78d910487f583e333cdf978b4f12c3c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga78d910487f583e333cdf978b4f12c3c1">&#9670;&nbsp;</a></span>ecrt_sdo_request_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a> ecrt_sdo_request_state </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the current state of the SDO request. </p>
<dl class="section return"><dt>Returns</dt><dd>Request state. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>SDO request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="sdo__request_8c_source.html#l00217">217</a> of file <a class="el" href="sdo__request_8c_source.html">sdo_request.c</a>.</p>

</div>
</div>
<a id="gaf0e5a35aa54d971d75a6d00c148ffa83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf0e5a35aa54d971d75a6d00c148ffa83">&#9670;&nbsp;</a></span>ecrt_sdo_request_write()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_sdo_request_write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Schedule an SDO write operation. </p>
<dl class="section attention"><dt>Attention</dt><dd>This method may not be called while <a class="el" href="group__ApplicationInterface.html#ga78d910487f583e333cdf978b4f12c3c1" title="Get the current state of the SDO request. ">ecrt_sdo_request_state()</a> returns EC_REQUEST_BUSY. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>SDO request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="sdo__request_8c_source.html#l00235">235</a> of file <a class="el" href="sdo__request_8c_source.html">sdo_request.c</a>.</p>

</div>
</div>
<a id="ga883e43ca2b29e73ac5ec5dec214487b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga883e43ca2b29e73ac5ec5dec214487b2">&#9670;&nbsp;</a></span>ecrt_sdo_request_read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_sdo_request_read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga557aaf4c32cb56eee5e76fb6063628db">ec_sdo_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Schedule an SDO read operation. </p>
<dl class="section attention"><dt>Attention</dt><dd>This method may not be called while <a class="el" href="group__ApplicationInterface.html#ga78d910487f583e333cdf978b4f12c3c1" title="Get the current state of the SDO request. ">ecrt_sdo_request_state()</a> returns EC_REQUEST_BUSY.</dd>
<dd>
After calling this function, the return value of <a class="el" href="group__ApplicationInterface.html#ga70b875084a32b81579bf83c960390967" title="Access to the SDO request&#39;s data. ">ecrt_sdo_request_data()</a> must be considered as invalid while <a class="el" href="group__ApplicationInterface.html#ga78d910487f583e333cdf978b4f12c3c1" title="Get the current state of the SDO request. ">ecrt_sdo_request_state()</a> returns EC_REQUEST_BUSY. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>SDO request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="sdo__request_8c_source.html#l00224">224</a> of file <a class="el" href="sdo__request_8c_source.html">sdo_request.c</a>.</p>

</div>
</div>
<a id="ga0b19acf8409e13630e7525f571659744"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0b19acf8409e13630e7525f571659744">&#9670;&nbsp;</a></span>ecrt_voe_handler_send_header()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_voe_handler_send_header </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td>
          <td class="paramname"><em>voe</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>vendor_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>vendor_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the VoE header for future send operations. </p>
<p>A VoE message shall contain a 4-byte vendor ID, followed by a 2-byte vendor type at as header. These numbers can be set with this function. The values are valid and will be used for future send operations until the next call of this method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">voe</td><td>VoE handler. </td></tr>
    <tr><td class="paramname">vendor_id</td><td>Vendor ID. </td></tr>
    <tr><td class="paramname">vendor_type</td><td>Vendor-specific type. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="voe__handler_8c_source.html#l00127">127</a> of file <a class="el" href="voe__handler_8c_source.html">voe_handler.c</a>.</p>

</div>
</div>
<a id="gaad5d4056c54c6189a6f5d16bebd46306"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaad5d4056c54c6189a6f5d16bebd46306">&#9670;&nbsp;</a></span>ecrt_voe_handler_received_header()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_voe_handler_received_header </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td>
          <td class="paramname"><em>voe</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>vendor_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>vendor_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads the header data of a received VoE message. </p>
<p>This method can be used to get the received VoE header information after a read operation has succeeded.</p>
<p>The header information is stored at the memory given by the pointer parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">voe</td><td>VoE handler. </td></tr>
    <tr><td class="paramname">vendor_id</td><td>Vendor ID. </td></tr>
    <tr><td class="paramname">vendor_type</td><td>Vendor-specific type. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="voe__handler_8c_source.html#l00136">136</a> of file <a class="el" href="voe__handler_8c_source.html">voe_handler.c</a>.</p>

</div>
</div>
<a id="ga4e08667772cb5ca889324d3a5c0d4b26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4e08667772cb5ca889324d3a5c0d4b26">&#9670;&nbsp;</a></span>ecrt_voe_handler_data()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ecrt_voe_handler_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td>
          <td class="paramname"><em>voe</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Access to the VoE handler's data. </p>
<p>This function returns a pointer to the VoE handler's internal memory, that points to the actual VoE data right after the VoE header (see <a class="el" href="group__ApplicationInterface.html#ga0b19acf8409e13630e7525f571659744" title="Sets the VoE header for future send operations. ">ecrt_voe_handler_send_header()</a>).</p>
<ul>
<li>After a read operation was successful, the memory contains the received data. The size of the received data can be determined via <a class="el" href="group__ApplicationInterface.html#gaabc36254a5c0f0ff3aec0ead3d4ecc96" title="Returns the current data size. ">ecrt_voe_handler_data_size()</a>.</li>
<li>Before a write operation is triggered, the data have to be written to the internal memory. Be sure, that the data fit into the memory. The reserved memory size is a parameter of <a class="el" href="group__ApplicationInterface.html#ga6341627f6bf764312dd6e8c3140e9be1" title="Create an VoE handler to exchange vendor-specific data during realtime operation. ...">ecrt_slave_config_create_voe_handler()</a>.</li>
</ul>
<dl class="section attention"><dt>Attention</dt><dd>The returned pointer is not necessarily persistent: After a read operation, the internal memory may have been reallocated. This can be avoided by reserving enough memory via the <em>size</em> parameter of <a class="el" href="group__ApplicationInterface.html#ga6341627f6bf764312dd6e8c3140e9be1" title="Create an VoE handler to exchange vendor-specific data during realtime operation. ...">ecrt_slave_config_create_voe_handler()</a>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the internal memory. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">voe</td><td>VoE handler. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="voe__handler_8c_source.html#l00149">149</a> of file <a class="el" href="voe__handler_8c_source.html">voe_handler.c</a>.</p>

</div>
</div>
<a id="gaabc36254a5c0f0ff3aec0ead3d4ecc96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaabc36254a5c0f0ff3aec0ead3d4ecc96">&#9670;&nbsp;</a></span>ecrt_voe_handler_data_size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t ecrt_voe_handler_data_size </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td>
          <td class="paramname"><em>voe</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current data size. </p>
<p>The data size is the size of the VoE data without the header (see <a class="el" href="group__ApplicationInterface.html#ga0b19acf8409e13630e7525f571659744" title="Sets the VoE header for future send operations. ">ecrt_voe_handler_send_header()</a>).</p>
<p>When the VoE handler is created, the data size is set to the size of the reserved memory. At a write operation, the data size is set to the number of bytes to write. After a read operation the size is set to the size of the read data. The size is not modified in any other situation.</p>
<dl class="section return"><dt>Returns</dt><dd>Data size in bytes. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">voe</td><td>VoE handler. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="voe__handler_8c_source.html#l00156">156</a> of file <a class="el" href="voe__handler_8c_source.html">voe_handler.c</a>.</p>

</div>
</div>
<a id="ga1bcfdf71d8d8632c26c07beb17374971"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1bcfdf71d8d8632c26c07beb17374971">&#9670;&nbsp;</a></span>ecrt_voe_handler_write()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_voe_handler_write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td>
          <td class="paramname"><em>voe</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start a VoE write operation. </p>
<p>After this function has been called, the <a class="el" href="group__ApplicationInterface.html#ga26c45ec21428d91704016494cb5a38ae" title="Execute the handler. ">ecrt_voe_handler_execute()</a> method must be called in every bus cycle as long as it returns EC_REQUEST_BUSY. No other operation may be started while the handler is busy. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">voe</td><td>VoE handler. </td></tr>
    <tr><td class="paramname">size</td><td>Number of bytes to write (without the VoE header). </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="voe__handler_8c_source.html#l00181">181</a> of file <a class="el" href="voe__handler_8c_source.html">voe_handler.c</a>.</p>

</div>
</div>
<a id="ga71bc42fb7cb1bd008303bb79df11312e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga71bc42fb7cb1bd008303bb79df11312e">&#9670;&nbsp;</a></span>ecrt_voe_handler_read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_voe_handler_read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td>
          <td class="paramname"><em>voe</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start a VoE read operation. </p>
<p>After this function has been called, the <a class="el" href="group__ApplicationInterface.html#ga26c45ec21428d91704016494cb5a38ae" title="Execute the handler. ">ecrt_voe_handler_execute()</a> method must be called in every bus cycle as long as it returns EC_REQUEST_BUSY. No other operation may be started while the handler is busy.</p>
<p>The state machine queries the slave's send mailbox for new data to be send to the master. If no data appear within the EC_VOE_RESPONSE_TIMEOUT (defined in <a class="el" href="voe__handler_8c.html" title="Vendor specific over EtherCAT protocol handler functions. ">master/voe_handler.c</a>), the operation fails.</p>
<p>On success, the size of the read data can be determined via <a class="el" href="group__ApplicationInterface.html#gaabc36254a5c0f0ff3aec0ead3d4ecc96" title="Returns the current data size. ">ecrt_voe_handler_data_size()</a>, while the VoE header of the received data can be retrieved with <a class="el" href="group__ApplicationInterface.html#gaad5d4056c54c6189a6f5d16bebd46306" title="Reads the header data of a received VoE message. ">ecrt_voe_handler_received_header()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">voe</td><td>VoE handler. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="voe__handler_8c_source.html#l00163">163</a> of file <a class="el" href="voe__handler_8c_source.html">voe_handler.c</a>.</p>

</div>
</div>
<a id="gad0bc75bb57e280a55b0e9d31c0f06f71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad0bc75bb57e280a55b0e9d31c0f06f71">&#9670;&nbsp;</a></span>ecrt_voe_handler_read_nosync()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_voe_handler_read_nosync </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td>
          <td class="paramname"><em>voe</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start a VoE read operation without querying the sync manager status. </p>
<p>After this function has been called, the <a class="el" href="group__ApplicationInterface.html#ga26c45ec21428d91704016494cb5a38ae" title="Execute the handler. ">ecrt_voe_handler_execute()</a> method must be called in every bus cycle as long as it returns EC_REQUEST_BUSY. No other operation may be started while the handler is busy.</p>
<p>The state machine queries the slave by sending an empty mailbox. The slave fills its data to the master in this mailbox. If no data appear within the EC_VOE_RESPONSE_TIMEOUT (defined in <a class="el" href="voe__handler_8c.html" title="Vendor specific over EtherCAT protocol handler functions. ">master/voe_handler.c</a>), the operation fails.</p>
<p>On success, the size of the read data can be determined via <a class="el" href="group__ApplicationInterface.html#gaabc36254a5c0f0ff3aec0ead3d4ecc96" title="Returns the current data size. ">ecrt_voe_handler_data_size()</a>, while the VoE header of the received data can be retrieved with <a class="el" href="group__ApplicationInterface.html#gaad5d4056c54c6189a6f5d16bebd46306" title="Reads the header data of a received VoE message. ">ecrt_voe_handler_received_header()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">voe</td><td>VoE handler. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="voe__handler_8c_source.html#l00172">172</a> of file <a class="el" href="voe__handler_8c_source.html">voe_handler.c</a>.</p>

</div>
</div>
<a id="ga26c45ec21428d91704016494cb5a38ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26c45ec21428d91704016494cb5a38ae">&#9670;&nbsp;</a></span>ecrt_voe_handler_execute()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a> ecrt_voe_handler_execute </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga498dd422118de7095af5287ef9a6eed1">ec_voe_handler_t</a> *&#160;</td>
          <td class="paramname"><em>voe</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Execute the handler. </p>
<p>This method executes the VoE handler. It has to be called in every bus cycle as long as it returns EC_REQUEST_BUSY.</p>
<dl class="section return"><dt>Returns</dt><dd>Handler state. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">voe</td><td>VoE handler. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="voe__handler_8c_source.html#l00191">191</a> of file <a class="el" href="voe__handler_8c_source.html">voe_handler.c</a>.</p>

</div>
</div>
<a id="gaecfbefc3410396bd5ca5f14c489ea838"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaecfbefc3410396bd5ca5f14c489ea838">&#9670;&nbsp;</a></span>ecrt_reg_request_data()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ecrt_reg_request_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Access to the register request's data. </p>
<p>This function returns a pointer to the request's internal memory.</p>
<ul>
<li>After a read operation was successful, integer data can be evaluated using the EC_READ_*() macros as usual. Example: <div class="fragment"><div class="line">uint16_t value = <a class="code" href="group__ApplicationInterface.html#gaa78148947379983986940d1980ac3db1">EC_READ_U16</a>(<a class="code" href="group__ApplicationInterface.html#gaecfbefc3410396bd5ca5f14c489ea838">ecrt_reg_request_data</a>(reg_request)));</div></div><!-- fragment --></li>
<li>If a write operation shall be triggered, the data have to be written to the internal memory. Use the EC_WRITE_*() macros, if you are writing integer data. Be sure, that the data fit into the memory. The memory size is a parameter of <a class="el" href="group__ApplicationInterface.html#ga1805e57c39e7bb12840c5e2589021dbe" title="Create a register request to exchange EtherCAT register contents during realtime operation. ">ecrt_slave_config_create_reg_request()</a>. <div class="fragment"><div class="line"><a class="code" href="group__ApplicationInterface.html#gace219530ddd83f5f3f54d5b329b94a3d">EC_WRITE_U16</a>(<a class="code" href="group__ApplicationInterface.html#gaecfbefc3410396bd5ca5f14c489ea838">ecrt_reg_request_data</a>(reg_request), 0xFFFF);</div></div><!-- fragment --></li>
</ul>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the internal memory. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>Register request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="reg__request_8c_source.html#l00085">85</a> of file <a class="el" href="reg__request_8c_source.html">reg_request.c</a>.</p>

</div>
</div>
<a id="gac7fc3bbec83497a78b7b075e41eb26e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac7fc3bbec83497a78b7b075e41eb26e4">&#9670;&nbsp;</a></span>ecrt_reg_request_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ApplicationInterface.html#gae94149f829f04960c62d63764a7779df">ec_request_state_t</a> ecrt_reg_request_state </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the current state of the register request. </p>
<dl class="section return"><dt>Returns</dt><dd>Request state. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>Register request. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="reg__request_8c_source.html#l00092">92</a> of file <a class="el" href="reg__request_8c_source.html">reg_request.c</a>.</p>

</div>
</div>
<a id="ga3c12de18886ffb7aaeb7ac364a7f2034"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3c12de18886ffb7aaeb7ac364a7f2034">&#9670;&nbsp;</a></span>ecrt_reg_request_write()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_reg_request_write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Schedule an register write operation. </p>
<dl class="section attention"><dt>Attention</dt><dd>This method may not be called while <a class="el" href="group__ApplicationInterface.html#gac7fc3bbec83497a78b7b075e41eb26e4" title="Get the current state of the register request. ">ecrt_reg_request_state()</a> returns EC_REQUEST_BUSY.</dd>
<dd>
The <em>size</em> parameter is truncated to the size given at request creation. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>Register request. </td></tr>
    <tr><td class="paramname">address</td><td>Register address. </td></tr>
    <tr><td class="paramname">size</td><td>Size to write. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="reg__request_8c_source.html#l00099">99</a> of file <a class="el" href="reg__request_8c_source.html">reg_request.c</a>.</p>

</div>
</div>
<a id="gad8da153df44d98812c897c56cabe1e84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad8da153df44d98812c897c56cabe1e84">&#9670;&nbsp;</a></span>ecrt_reg_request_read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ecrt_reg_request_read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga85a829c5133104f0d21f9e6684201d79">ec_reg_request_t</a> *&#160;</td>
          <td class="paramname"><em>req</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Schedule a register read operation. </p>
<dl class="section attention"><dt>Attention</dt><dd>This method may not be called while <a class="el" href="group__ApplicationInterface.html#gac7fc3bbec83497a78b7b075e41eb26e4" title="Get the current state of the register request. ">ecrt_reg_request_state()</a> returns EC_REQUEST_BUSY.</dd>
<dd>
The <em>size</em> parameter is truncated to the size given at request creation. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">req</td><td>Register request. </td></tr>
    <tr><td class="paramname">address</td><td>Register address. </td></tr>
    <tr><td class="paramname">size</td><td>Size to write. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="reg__request_8c_source.html#l00110">110</a> of file <a class="el" href="reg__request_8c_source.html">reg_request.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
